diff --git a/.stamp b/.stamp
deleted file mode 100644
index e69de29..0000000
diff --git a/404.html b/404.html
index 6cbcc91..9e9ebc0 100644
--- a/404.html
+++ b/404.html
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/Semi.Avalonia.Demo.Web.runtimeconfig.json b/Semi.Avalonia.Demo.Web.runtimeconfig.json
deleted file mode 100644
index 55419b3..0000000
--- a/Semi.Avalonia.Demo.Web.runtimeconfig.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "net7.0",
- "includedFrameworks": [
- {
- "name": "Microsoft.NETCore.App",
- "version": "7.0.15"
- }
- ],
- "wasmHostProperties": {
- "perHostConfig": [
- {
- "name": "browser",
- "html-path": "index.html",
- "Host": "browser"
- }
- ],
- "runtimeArgs": [],
- "mainAssembly": "Semi.Avalonia.Demo.Web.dll"
- },
- "configProperties": {
- "Microsoft.Extensions.DependencyInjection.VerifyOpenGenericServiceTrimmability": true,
- "System.ComponentModel.TypeConverter.EnableUnsafeBinaryFormatterInDesigntimeLicenseContextSerialization": false,
- "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
- "System.Resources.ResourceManager.AllowCustomResourceTypes": false,
- "System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false,
- "System.Runtime.InteropServices.EnableConsumingManagedCodeFromNativeHosting": false,
- "System.Runtime.InteropServices.EnableCppCLIHostActivation": false,
- "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
- "System.StartupHookProvider.IsSupported": false,
- "System.Text.Encoding.EnableUnsafeUTF7Encoding": false,
- "System.Threading.Thread.EnableAutoreleasePool": false
- }
- }
-}
\ No newline at end of file
diff --git a/_framework/Avalonia.Base.wasm b/_framework/Avalonia.Base.wasm
new file mode 100644
index 0000000..2584be7
Binary files /dev/null and b/_framework/Avalonia.Base.wasm differ
diff --git a/_framework/Avalonia.Base.wasm.br b/_framework/Avalonia.Base.wasm.br
new file mode 100644
index 0000000..6a1acee
Binary files /dev/null and b/_framework/Avalonia.Base.wasm.br differ
diff --git a/_framework/Avalonia.Base.wasm.gz b/_framework/Avalonia.Base.wasm.gz
new file mode 100644
index 0000000..66a12ba
Binary files /dev/null and b/_framework/Avalonia.Base.wasm.gz differ
diff --git a/_framework/Avalonia.Browser.wasm b/_framework/Avalonia.Browser.wasm
new file mode 100644
index 0000000..591e598
Binary files /dev/null and b/_framework/Avalonia.Browser.wasm differ
diff --git a/_framework/Avalonia.Browser.wasm.br b/_framework/Avalonia.Browser.wasm.br
new file mode 100644
index 0000000..e789ba7
Binary files /dev/null and b/_framework/Avalonia.Browser.wasm.br differ
diff --git a/_framework/Avalonia.Browser.wasm.gz b/_framework/Avalonia.Browser.wasm.gz
new file mode 100644
index 0000000..364824a
Binary files /dev/null and b/_framework/Avalonia.Browser.wasm.gz differ
diff --git a/managed/Avalonia.Controls.ColorPicker.dll b/_framework/Avalonia.Controls.ColorPicker.wasm
similarity index 78%
rename from managed/Avalonia.Controls.ColorPicker.dll
rename to _framework/Avalonia.Controls.ColorPicker.wasm
index 565ceaf..c90d2a7 100644
Binary files a/managed/Avalonia.Controls.ColorPicker.dll and b/_framework/Avalonia.Controls.ColorPicker.wasm differ
diff --git a/_framework/Avalonia.Controls.ColorPicker.wasm.br b/_framework/Avalonia.Controls.ColorPicker.wasm.br
new file mode 100644
index 0000000..48e0b7c
Binary files /dev/null and b/_framework/Avalonia.Controls.ColorPicker.wasm.br differ
diff --git a/_framework/Avalonia.Controls.ColorPicker.wasm.gz b/_framework/Avalonia.Controls.ColorPicker.wasm.gz
new file mode 100644
index 0000000..b375378
Binary files /dev/null and b/_framework/Avalonia.Controls.ColorPicker.wasm.gz differ
diff --git a/_framework/Avalonia.Controls.DataGrid.wasm b/_framework/Avalonia.Controls.DataGrid.wasm
new file mode 100644
index 0000000..a3c97f7
Binary files /dev/null and b/_framework/Avalonia.Controls.DataGrid.wasm differ
diff --git a/_framework/Avalonia.Controls.DataGrid.wasm.br b/_framework/Avalonia.Controls.DataGrid.wasm.br
new file mode 100644
index 0000000..3fdfa7d
Binary files /dev/null and b/_framework/Avalonia.Controls.DataGrid.wasm.br differ
diff --git a/_framework/Avalonia.Controls.DataGrid.wasm.gz b/_framework/Avalonia.Controls.DataGrid.wasm.gz
new file mode 100644
index 0000000..f107c69
Binary files /dev/null and b/_framework/Avalonia.Controls.DataGrid.wasm.gz differ
diff --git a/_framework/Avalonia.Controls.wasm b/_framework/Avalonia.Controls.wasm
new file mode 100644
index 0000000..b616c12
Binary files /dev/null and b/_framework/Avalonia.Controls.wasm differ
diff --git a/_framework/Avalonia.Controls.wasm.br b/_framework/Avalonia.Controls.wasm.br
new file mode 100644
index 0000000..4da5ade
Binary files /dev/null and b/_framework/Avalonia.Controls.wasm.br differ
diff --git a/_framework/Avalonia.Controls.wasm.gz b/_framework/Avalonia.Controls.wasm.gz
new file mode 100644
index 0000000..d1aef9a
Binary files /dev/null and b/_framework/Avalonia.Controls.wasm.gz differ
diff --git a/_framework/Avalonia.DesignerSupport.wasm b/_framework/Avalonia.DesignerSupport.wasm
new file mode 100644
index 0000000..d7f038f
Binary files /dev/null and b/_framework/Avalonia.DesignerSupport.wasm differ
diff --git a/_framework/Avalonia.DesignerSupport.wasm.br b/_framework/Avalonia.DesignerSupport.wasm.br
new file mode 100644
index 0000000..a9a7394
Binary files /dev/null and b/_framework/Avalonia.DesignerSupport.wasm.br differ
diff --git a/_framework/Avalonia.DesignerSupport.wasm.gz b/_framework/Avalonia.DesignerSupport.wasm.gz
new file mode 100644
index 0000000..54a1313
Binary files /dev/null and b/_framework/Avalonia.DesignerSupport.wasm.gz differ
diff --git a/managed/Avalonia.Dialogs.dll b/_framework/Avalonia.Dialogs.wasm
similarity index 96%
rename from managed/Avalonia.Dialogs.dll
rename to _framework/Avalonia.Dialogs.wasm
index f5494b0..257baed 100644
Binary files a/managed/Avalonia.Dialogs.dll and b/_framework/Avalonia.Dialogs.wasm differ
diff --git a/_framework/Avalonia.Dialogs.wasm.br b/_framework/Avalonia.Dialogs.wasm.br
new file mode 100644
index 0000000..b5804e0
Binary files /dev/null and b/_framework/Avalonia.Dialogs.wasm.br differ
diff --git a/_framework/Avalonia.Dialogs.wasm.gz b/_framework/Avalonia.Dialogs.wasm.gz
new file mode 100644
index 0000000..16fe8c1
Binary files /dev/null and b/_framework/Avalonia.Dialogs.wasm.gz differ
diff --git a/_framework/Avalonia.Markup.Xaml.wasm b/_framework/Avalonia.Markup.Xaml.wasm
new file mode 100644
index 0000000..4787a41
Binary files /dev/null and b/_framework/Avalonia.Markup.Xaml.wasm differ
diff --git a/_framework/Avalonia.Markup.Xaml.wasm.br b/_framework/Avalonia.Markup.Xaml.wasm.br
new file mode 100644
index 0000000..4b18fa6
Binary files /dev/null and b/_framework/Avalonia.Markup.Xaml.wasm.br differ
diff --git a/_framework/Avalonia.Markup.Xaml.wasm.gz b/_framework/Avalonia.Markup.Xaml.wasm.gz
new file mode 100644
index 0000000..ad4937c
Binary files /dev/null and b/_framework/Avalonia.Markup.Xaml.wasm.gz differ
diff --git a/_framework/Avalonia.Markup.wasm b/_framework/Avalonia.Markup.wasm
new file mode 100644
index 0000000..2fe100a
Binary files /dev/null and b/_framework/Avalonia.Markup.wasm differ
diff --git a/_framework/Avalonia.Markup.wasm.br b/_framework/Avalonia.Markup.wasm.br
new file mode 100644
index 0000000..286ebc4
Binary files /dev/null and b/_framework/Avalonia.Markup.wasm.br differ
diff --git a/_framework/Avalonia.Markup.wasm.gz b/_framework/Avalonia.Markup.wasm.gz
new file mode 100644
index 0000000..eeccc3b
Binary files /dev/null and b/_framework/Avalonia.Markup.wasm.gz differ
diff --git a/_framework/Avalonia.Metal.wasm b/_framework/Avalonia.Metal.wasm
new file mode 100644
index 0000000..abe0707
Binary files /dev/null and b/_framework/Avalonia.Metal.wasm differ
diff --git a/_framework/Avalonia.Metal.wasm.br b/_framework/Avalonia.Metal.wasm.br
new file mode 100644
index 0000000..de6b209
Binary files /dev/null and b/_framework/Avalonia.Metal.wasm.br differ
diff --git a/_framework/Avalonia.Metal.wasm.gz b/_framework/Avalonia.Metal.wasm.gz
new file mode 100644
index 0000000..99c25d7
Binary files /dev/null and b/_framework/Avalonia.Metal.wasm.gz differ
diff --git a/_framework/Avalonia.MicroCom.wasm b/_framework/Avalonia.MicroCom.wasm
new file mode 100644
index 0000000..be69516
Binary files /dev/null and b/_framework/Avalonia.MicroCom.wasm differ
diff --git a/_framework/Avalonia.MicroCom.wasm.br b/_framework/Avalonia.MicroCom.wasm.br
new file mode 100644
index 0000000..a4561cb
Binary files /dev/null and b/_framework/Avalonia.MicroCom.wasm.br differ
diff --git a/_framework/Avalonia.MicroCom.wasm.gz b/_framework/Avalonia.MicroCom.wasm.gz
new file mode 100644
index 0000000..1383500
Binary files /dev/null and b/_framework/Avalonia.MicroCom.wasm.gz differ
diff --git a/_framework/Avalonia.OpenGL.wasm b/_framework/Avalonia.OpenGL.wasm
new file mode 100644
index 0000000..f549ab5
Binary files /dev/null and b/_framework/Avalonia.OpenGL.wasm differ
diff --git a/_framework/Avalonia.OpenGL.wasm.br b/_framework/Avalonia.OpenGL.wasm.br
new file mode 100644
index 0000000..4c9447c
Binary files /dev/null and b/_framework/Avalonia.OpenGL.wasm.br differ
diff --git a/_framework/Avalonia.OpenGL.wasm.gz b/_framework/Avalonia.OpenGL.wasm.gz
new file mode 100644
index 0000000..e2092ea
Binary files /dev/null and b/_framework/Avalonia.OpenGL.wasm.gz differ
diff --git a/_framework/Avalonia.Remote.Protocol.wasm b/_framework/Avalonia.Remote.Protocol.wasm
new file mode 100644
index 0000000..28cf197
Binary files /dev/null and b/_framework/Avalonia.Remote.Protocol.wasm differ
diff --git a/_framework/Avalonia.Remote.Protocol.wasm.br b/_framework/Avalonia.Remote.Protocol.wasm.br
new file mode 100644
index 0000000..fd212b9
Binary files /dev/null and b/_framework/Avalonia.Remote.Protocol.wasm.br differ
diff --git a/_framework/Avalonia.Remote.Protocol.wasm.gz b/_framework/Avalonia.Remote.Protocol.wasm.gz
new file mode 100644
index 0000000..3501686
Binary files /dev/null and b/_framework/Avalonia.Remote.Protocol.wasm.gz differ
diff --git a/_framework/Avalonia.Skia.wasm b/_framework/Avalonia.Skia.wasm
new file mode 100644
index 0000000..592b028
Binary files /dev/null and b/_framework/Avalonia.Skia.wasm differ
diff --git a/_framework/Avalonia.Skia.wasm.br b/_framework/Avalonia.Skia.wasm.br
new file mode 100644
index 0000000..ddb5a51
Binary files /dev/null and b/_framework/Avalonia.Skia.wasm.br differ
diff --git a/_framework/Avalonia.Skia.wasm.gz b/_framework/Avalonia.Skia.wasm.gz
new file mode 100644
index 0000000..155abb2
Binary files /dev/null and b/_framework/Avalonia.Skia.wasm.gz differ
diff --git a/_framework/Avalonia.Vulkan.wasm b/_framework/Avalonia.Vulkan.wasm
new file mode 100644
index 0000000..8cebb1f
Binary files /dev/null and b/_framework/Avalonia.Vulkan.wasm differ
diff --git a/_framework/Avalonia.Vulkan.wasm.br b/_framework/Avalonia.Vulkan.wasm.br
new file mode 100644
index 0000000..e65c285
Binary files /dev/null and b/_framework/Avalonia.Vulkan.wasm.br differ
diff --git a/_framework/Avalonia.Vulkan.wasm.gz b/_framework/Avalonia.Vulkan.wasm.gz
new file mode 100644
index 0000000..48263d4
Binary files /dev/null and b/_framework/Avalonia.Vulkan.wasm.gz differ
diff --git a/_framework/Avalonia.wasm b/_framework/Avalonia.wasm
new file mode 100644
index 0000000..9840ed8
Binary files /dev/null and b/_framework/Avalonia.wasm differ
diff --git a/_framework/Avalonia.wasm.br b/_framework/Avalonia.wasm.br
new file mode 100644
index 0000000..45add8c
Binary files /dev/null and b/_framework/Avalonia.wasm.br differ
diff --git a/_framework/Avalonia.wasm.gz b/_framework/Avalonia.wasm.gz
new file mode 100644
index 0000000..88c5d4d
Binary files /dev/null and b/_framework/Avalonia.wasm.gz differ
diff --git a/_framework/CommunityToolkit.Mvvm.wasm b/_framework/CommunityToolkit.Mvvm.wasm
new file mode 100644
index 0000000..348524d
Binary files /dev/null and b/_framework/CommunityToolkit.Mvvm.wasm differ
diff --git a/_framework/CommunityToolkit.Mvvm.wasm.br b/_framework/CommunityToolkit.Mvvm.wasm.br
new file mode 100644
index 0000000..1159634
Binary files /dev/null and b/_framework/CommunityToolkit.Mvvm.wasm.br differ
diff --git a/_framework/CommunityToolkit.Mvvm.wasm.gz b/_framework/CommunityToolkit.Mvvm.wasm.gz
new file mode 100644
index 0000000..34189f3
Binary files /dev/null and b/_framework/CommunityToolkit.Mvvm.wasm.gz differ
diff --git a/_framework/HarfBuzzSharp.wasm b/_framework/HarfBuzzSharp.wasm
new file mode 100644
index 0000000..223163d
Binary files /dev/null and b/_framework/HarfBuzzSharp.wasm differ
diff --git a/_framework/HarfBuzzSharp.wasm.br b/_framework/HarfBuzzSharp.wasm.br
new file mode 100644
index 0000000..ac969f7
Binary files /dev/null and b/_framework/HarfBuzzSharp.wasm.br differ
diff --git a/_framework/HarfBuzzSharp.wasm.gz b/_framework/HarfBuzzSharp.wasm.gz
new file mode 100644
index 0000000..5364cc1
Binary files /dev/null and b/_framework/HarfBuzzSharp.wasm.gz differ
diff --git a/managed/MicroCom.Runtime.dll b/_framework/MicroCom.Runtime.wasm
old mode 100755
new mode 100644
similarity index 95%
rename from managed/MicroCom.Runtime.dll
rename to _framework/MicroCom.Runtime.wasm
index f6cf008..7d1d226
Binary files a/managed/MicroCom.Runtime.dll and b/_framework/MicroCom.Runtime.wasm differ
diff --git a/_framework/MicroCom.Runtime.wasm.br b/_framework/MicroCom.Runtime.wasm.br
new file mode 100644
index 0000000..db3a30c
Binary files /dev/null and b/_framework/MicroCom.Runtime.wasm.br differ
diff --git a/_framework/MicroCom.Runtime.wasm.gz b/_framework/MicroCom.Runtime.wasm.gz
new file mode 100644
index 0000000..cff53d9
Binary files /dev/null and b/_framework/MicroCom.Runtime.wasm.gz differ
diff --git a/_framework/Semi.Avalonia.ColorPicker.pdb.gz b/_framework/Semi.Avalonia.ColorPicker.pdb.gz
new file mode 100644
index 0000000..9897eba
Binary files /dev/null and b/_framework/Semi.Avalonia.ColorPicker.pdb.gz differ
diff --git a/_framework/Semi.Avalonia.ColorPicker.wasm b/_framework/Semi.Avalonia.ColorPicker.wasm
new file mode 100644
index 0000000..b81843d
Binary files /dev/null and b/_framework/Semi.Avalonia.ColorPicker.wasm differ
diff --git a/_framework/Semi.Avalonia.ColorPicker.wasm.br b/_framework/Semi.Avalonia.ColorPicker.wasm.br
new file mode 100644
index 0000000..6172b3f
Binary files /dev/null and b/_framework/Semi.Avalonia.ColorPicker.wasm.br differ
diff --git a/_framework/Semi.Avalonia.ColorPicker.wasm.gz b/_framework/Semi.Avalonia.ColorPicker.wasm.gz
new file mode 100644
index 0000000..10a8caf
Binary files /dev/null and b/_framework/Semi.Avalonia.ColorPicker.wasm.gz differ
diff --git a/_framework/Semi.Avalonia.DataGrid.pdb.gz b/_framework/Semi.Avalonia.DataGrid.pdb.gz
new file mode 100644
index 0000000..a7e212b
Binary files /dev/null and b/_framework/Semi.Avalonia.DataGrid.pdb.gz differ
diff --git a/_framework/Semi.Avalonia.DataGrid.wasm b/_framework/Semi.Avalonia.DataGrid.wasm
new file mode 100644
index 0000000..9ec7086
Binary files /dev/null and b/_framework/Semi.Avalonia.DataGrid.wasm differ
diff --git a/_framework/Semi.Avalonia.DataGrid.wasm.br b/_framework/Semi.Avalonia.DataGrid.wasm.br
new file mode 100644
index 0000000..a6913cc
Binary files /dev/null and b/_framework/Semi.Avalonia.DataGrid.wasm.br differ
diff --git a/_framework/Semi.Avalonia.DataGrid.wasm.gz b/_framework/Semi.Avalonia.DataGrid.wasm.gz
new file mode 100644
index 0000000..7321ced
Binary files /dev/null and b/_framework/Semi.Avalonia.DataGrid.wasm.gz differ
diff --git a/_framework/Semi.Avalonia.Demo.Web.pdb.gz b/_framework/Semi.Avalonia.Demo.Web.pdb.gz
new file mode 100644
index 0000000..b5ce1af
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.Web.pdb.gz differ
diff --git a/_framework/Semi.Avalonia.Demo.Web.wasm b/_framework/Semi.Avalonia.Demo.Web.wasm
new file mode 100644
index 0000000..c8a91bd
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.Web.wasm differ
diff --git a/_framework/Semi.Avalonia.Demo.Web.wasm.br b/_framework/Semi.Avalonia.Demo.Web.wasm.br
new file mode 100644
index 0000000..ca8343f
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.Web.wasm.br differ
diff --git a/_framework/Semi.Avalonia.Demo.Web.wasm.gz b/_framework/Semi.Avalonia.Demo.Web.wasm.gz
new file mode 100644
index 0000000..3253eef
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.Web.wasm.gz differ
diff --git a/_framework/Semi.Avalonia.Demo.pdb.gz b/_framework/Semi.Avalonia.Demo.pdb.gz
new file mode 100644
index 0000000..7019033
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.pdb.gz differ
diff --git a/managed/Semi.Avalonia.Demo.dll b/_framework/Semi.Avalonia.Demo.wasm
similarity index 85%
rename from managed/Semi.Avalonia.Demo.dll
rename to _framework/Semi.Avalonia.Demo.wasm
index 804e9c4..d909c47 100644
Binary files a/managed/Semi.Avalonia.Demo.dll and b/_framework/Semi.Avalonia.Demo.wasm differ
diff --git a/_framework/Semi.Avalonia.Demo.wasm.br b/_framework/Semi.Avalonia.Demo.wasm.br
new file mode 100644
index 0000000..a803f7c
Binary files /dev/null and b/_framework/Semi.Avalonia.Demo.wasm.br differ
diff --git a/managed/Semi.Avalonia.Demo.dll.gz b/_framework/Semi.Avalonia.Demo.wasm.gz
similarity index 86%
rename from managed/Semi.Avalonia.Demo.dll.gz
rename to _framework/Semi.Avalonia.Demo.wasm.gz
index d5e4d07..8bf6cec 100644
Binary files a/managed/Semi.Avalonia.Demo.dll.gz and b/_framework/Semi.Avalonia.Demo.wasm.gz differ
diff --git a/_framework/Semi.Avalonia.pdb.gz b/_framework/Semi.Avalonia.pdb.gz
new file mode 100644
index 0000000..6340755
Binary files /dev/null and b/_framework/Semi.Avalonia.pdb.gz differ
diff --git a/_framework/Semi.Avalonia.wasm b/_framework/Semi.Avalonia.wasm
new file mode 100644
index 0000000..0e38e6a
Binary files /dev/null and b/_framework/Semi.Avalonia.wasm differ
diff --git a/_framework/Semi.Avalonia.wasm.br b/_framework/Semi.Avalonia.wasm.br
new file mode 100644
index 0000000..fd1afde
Binary files /dev/null and b/_framework/Semi.Avalonia.wasm.br differ
diff --git a/_framework/Semi.Avalonia.wasm.gz b/_framework/Semi.Avalonia.wasm.gz
new file mode 100644
index 0000000..a915c4b
Binary files /dev/null and b/_framework/Semi.Avalonia.wasm.gz differ
diff --git a/_framework/SkiaSharp.wasm b/_framework/SkiaSharp.wasm
new file mode 100644
index 0000000..9c2f03f
Binary files /dev/null and b/_framework/SkiaSharp.wasm differ
diff --git a/_framework/SkiaSharp.wasm.br b/_framework/SkiaSharp.wasm.br
new file mode 100644
index 0000000..dc0c2e5
Binary files /dev/null and b/_framework/SkiaSharp.wasm.br differ
diff --git a/_framework/SkiaSharp.wasm.gz b/_framework/SkiaSharp.wasm.gz
new file mode 100644
index 0000000..ebf376f
Binary files /dev/null and b/_framework/SkiaSharp.wasm.gz differ
diff --git a/_framework/System.Collections.Concurrent.wasm b/_framework/System.Collections.Concurrent.wasm
new file mode 100644
index 0000000..556ff7a
Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm differ
diff --git a/_framework/System.Collections.Concurrent.wasm.br b/_framework/System.Collections.Concurrent.wasm.br
new file mode 100644
index 0000000..3ef96a0
Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm.br differ
diff --git a/_framework/System.Collections.Concurrent.wasm.gz b/_framework/System.Collections.Concurrent.wasm.gz
new file mode 100644
index 0000000..566304e
Binary files /dev/null and b/_framework/System.Collections.Concurrent.wasm.gz differ
diff --git a/_framework/System.Collections.NonGeneric.wasm b/_framework/System.Collections.NonGeneric.wasm
new file mode 100644
index 0000000..ea7ebea
Binary files /dev/null and b/_framework/System.Collections.NonGeneric.wasm differ
diff --git a/_framework/System.Collections.NonGeneric.wasm.br b/_framework/System.Collections.NonGeneric.wasm.br
new file mode 100644
index 0000000..2e5cc75
Binary files /dev/null and b/_framework/System.Collections.NonGeneric.wasm.br differ
diff --git a/_framework/System.Collections.NonGeneric.wasm.gz b/_framework/System.Collections.NonGeneric.wasm.gz
new file mode 100644
index 0000000..6cdc209
Binary files /dev/null and b/_framework/System.Collections.NonGeneric.wasm.gz differ
diff --git a/_framework/System.Collections.Specialized.wasm b/_framework/System.Collections.Specialized.wasm
new file mode 100644
index 0000000..61bb6e7
Binary files /dev/null and b/_framework/System.Collections.Specialized.wasm differ
diff --git a/_framework/System.Collections.Specialized.wasm.br b/_framework/System.Collections.Specialized.wasm.br
new file mode 100644
index 0000000..cfee592
Binary files /dev/null and b/_framework/System.Collections.Specialized.wasm.br differ
diff --git a/_framework/System.Collections.Specialized.wasm.gz b/_framework/System.Collections.Specialized.wasm.gz
new file mode 100644
index 0000000..b1620f6
Binary files /dev/null and b/_framework/System.Collections.Specialized.wasm.gz differ
diff --git a/_framework/System.Collections.wasm b/_framework/System.Collections.wasm
new file mode 100644
index 0000000..fc97583
Binary files /dev/null and b/_framework/System.Collections.wasm differ
diff --git a/_framework/System.Collections.wasm.br b/_framework/System.Collections.wasm.br
new file mode 100644
index 0000000..1c7e00a
Binary files /dev/null and b/_framework/System.Collections.wasm.br differ
diff --git a/_framework/System.Collections.wasm.gz b/_framework/System.Collections.wasm.gz
new file mode 100644
index 0000000..4e4e685
Binary files /dev/null and b/_framework/System.Collections.wasm.gz differ
diff --git a/_framework/System.ComponentModel.Annotations.wasm b/_framework/System.ComponentModel.Annotations.wasm
new file mode 100644
index 0000000..3e31a0b
Binary files /dev/null and b/_framework/System.ComponentModel.Annotations.wasm differ
diff --git a/_framework/System.ComponentModel.Annotations.wasm.br b/_framework/System.ComponentModel.Annotations.wasm.br
new file mode 100644
index 0000000..5535cc7
Binary files /dev/null and b/_framework/System.ComponentModel.Annotations.wasm.br differ
diff --git a/_framework/System.ComponentModel.Annotations.wasm.gz b/_framework/System.ComponentModel.Annotations.wasm.gz
new file mode 100644
index 0000000..ab17c5e
Binary files /dev/null and b/_framework/System.ComponentModel.Annotations.wasm.gz differ
diff --git a/_framework/System.ComponentModel.Primitives.wasm b/_framework/System.ComponentModel.Primitives.wasm
new file mode 100644
index 0000000..9342522
Binary files /dev/null and b/_framework/System.ComponentModel.Primitives.wasm differ
diff --git a/_framework/System.ComponentModel.Primitives.wasm.br b/_framework/System.ComponentModel.Primitives.wasm.br
new file mode 100644
index 0000000..1bc923a
Binary files /dev/null and b/_framework/System.ComponentModel.Primitives.wasm.br differ
diff --git a/_framework/System.ComponentModel.Primitives.wasm.gz b/_framework/System.ComponentModel.Primitives.wasm.gz
new file mode 100644
index 0000000..f1cd8d3
Binary files /dev/null and b/_framework/System.ComponentModel.Primitives.wasm.gz differ
diff --git a/_framework/System.ComponentModel.TypeConverter.wasm b/_framework/System.ComponentModel.TypeConverter.wasm
new file mode 100644
index 0000000..b972373
Binary files /dev/null and b/_framework/System.ComponentModel.TypeConverter.wasm differ
diff --git a/_framework/System.ComponentModel.TypeConverter.wasm.br b/_framework/System.ComponentModel.TypeConverter.wasm.br
new file mode 100644
index 0000000..63ce76f
Binary files /dev/null and b/_framework/System.ComponentModel.TypeConverter.wasm.br differ
diff --git a/_framework/System.ComponentModel.TypeConverter.wasm.gz b/_framework/System.ComponentModel.TypeConverter.wasm.gz
new file mode 100644
index 0000000..e543aa4
Binary files /dev/null and b/_framework/System.ComponentModel.TypeConverter.wasm.gz differ
diff --git a/_framework/System.ComponentModel.wasm b/_framework/System.ComponentModel.wasm
new file mode 100644
index 0000000..5b9d64f
Binary files /dev/null and b/_framework/System.ComponentModel.wasm differ
diff --git a/_framework/System.ComponentModel.wasm.br b/_framework/System.ComponentModel.wasm.br
new file mode 100644
index 0000000..e0d1a18
Binary files /dev/null and b/_framework/System.ComponentModel.wasm.br differ
diff --git a/_framework/System.ComponentModel.wasm.gz b/_framework/System.ComponentModel.wasm.gz
new file mode 100644
index 0000000..3f47126
Binary files /dev/null and b/_framework/System.ComponentModel.wasm.gz differ
diff --git a/_framework/System.Console.wasm b/_framework/System.Console.wasm
new file mode 100644
index 0000000..e0a1b0e
Binary files /dev/null and b/_framework/System.Console.wasm differ
diff --git a/_framework/System.Console.wasm.br b/_framework/System.Console.wasm.br
new file mode 100644
index 0000000..4c169d1
Binary files /dev/null and b/_framework/System.Console.wasm.br differ
diff --git a/_framework/System.Console.wasm.gz b/_framework/System.Console.wasm.gz
new file mode 100644
index 0000000..6f07e7b
Binary files /dev/null and b/_framework/System.Console.wasm.gz differ
diff --git a/_framework/System.IO.Compression.wasm b/_framework/System.IO.Compression.wasm
new file mode 100644
index 0000000..e077906
Binary files /dev/null and b/_framework/System.IO.Compression.wasm differ
diff --git a/_framework/System.IO.Compression.wasm.br b/_framework/System.IO.Compression.wasm.br
new file mode 100644
index 0000000..57567d5
Binary files /dev/null and b/_framework/System.IO.Compression.wasm.br differ
diff --git a/_framework/System.IO.Compression.wasm.gz b/_framework/System.IO.Compression.wasm.gz
new file mode 100644
index 0000000..d49a67c
Binary files /dev/null and b/_framework/System.IO.Compression.wasm.gz differ
diff --git a/_framework/System.Linq.Expressions.wasm b/_framework/System.Linq.Expressions.wasm
new file mode 100644
index 0000000..cca62e5
Binary files /dev/null and b/_framework/System.Linq.Expressions.wasm differ
diff --git a/_framework/System.Linq.Expressions.wasm.br b/_framework/System.Linq.Expressions.wasm.br
new file mode 100644
index 0000000..f5868ea
Binary files /dev/null and b/_framework/System.Linq.Expressions.wasm.br differ
diff --git a/_framework/System.Linq.Expressions.wasm.gz b/_framework/System.Linq.Expressions.wasm.gz
new file mode 100644
index 0000000..78a4c98
Binary files /dev/null and b/_framework/System.Linq.Expressions.wasm.gz differ
diff --git a/_framework/System.Linq.wasm b/_framework/System.Linq.wasm
new file mode 100644
index 0000000..1c9a88c
Binary files /dev/null and b/_framework/System.Linq.wasm differ
diff --git a/_framework/System.Linq.wasm.br b/_framework/System.Linq.wasm.br
new file mode 100644
index 0000000..6975d66
Binary files /dev/null and b/_framework/System.Linq.wasm.br differ
diff --git a/_framework/System.Linq.wasm.gz b/_framework/System.Linq.wasm.gz
new file mode 100644
index 0000000..f5e5397
Binary files /dev/null and b/_framework/System.Linq.wasm.gz differ
diff --git a/_framework/System.Net.Primitives.wasm b/_framework/System.Net.Primitives.wasm
new file mode 100644
index 0000000..24bb70a
Binary files /dev/null and b/_framework/System.Net.Primitives.wasm differ
diff --git a/_framework/System.Net.Primitives.wasm.br b/_framework/System.Net.Primitives.wasm.br
new file mode 100644
index 0000000..3b92d2b
Binary files /dev/null and b/_framework/System.Net.Primitives.wasm.br differ
diff --git a/_framework/System.Net.Primitives.wasm.gz b/_framework/System.Net.Primitives.wasm.gz
new file mode 100644
index 0000000..915b1cc
Binary files /dev/null and b/_framework/System.Net.Primitives.wasm.gz differ
diff --git a/_framework/System.Net.Sockets.wasm b/_framework/System.Net.Sockets.wasm
new file mode 100644
index 0000000..faf5d64
Binary files /dev/null and b/_framework/System.Net.Sockets.wasm differ
diff --git a/_framework/System.Net.Sockets.wasm.br b/_framework/System.Net.Sockets.wasm.br
new file mode 100644
index 0000000..7e9e0d9
Binary files /dev/null and b/_framework/System.Net.Sockets.wasm.br differ
diff --git a/_framework/System.Net.Sockets.wasm.gz b/_framework/System.Net.Sockets.wasm.gz
new file mode 100644
index 0000000..a2c8008
Binary files /dev/null and b/_framework/System.Net.Sockets.wasm.gz differ
diff --git a/_framework/System.ObjectModel.wasm b/_framework/System.ObjectModel.wasm
new file mode 100644
index 0000000..fadc97b
Binary files /dev/null and b/_framework/System.ObjectModel.wasm differ
diff --git a/_framework/System.ObjectModel.wasm.br b/_framework/System.ObjectModel.wasm.br
new file mode 100644
index 0000000..ec0aa2c
Binary files /dev/null and b/_framework/System.ObjectModel.wasm.br differ
diff --git a/_framework/System.ObjectModel.wasm.gz b/_framework/System.ObjectModel.wasm.gz
new file mode 100644
index 0000000..8d42adc
Binary files /dev/null and b/_framework/System.ObjectModel.wasm.gz differ
diff --git a/_framework/System.Private.CoreLib.wasm b/_framework/System.Private.CoreLib.wasm
new file mode 100644
index 0000000..443cc6a
Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm differ
diff --git a/_framework/System.Private.CoreLib.wasm.br b/_framework/System.Private.CoreLib.wasm.br
new file mode 100644
index 0000000..729e99b
Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm.br differ
diff --git a/_framework/System.Private.CoreLib.wasm.gz b/_framework/System.Private.CoreLib.wasm.gz
new file mode 100644
index 0000000..f9bf973
Binary files /dev/null and b/_framework/System.Private.CoreLib.wasm.gz differ
diff --git a/_framework/System.Private.Uri.wasm b/_framework/System.Private.Uri.wasm
new file mode 100644
index 0000000..b4a21d7
Binary files /dev/null and b/_framework/System.Private.Uri.wasm differ
diff --git a/_framework/System.Private.Uri.wasm.br b/_framework/System.Private.Uri.wasm.br
new file mode 100644
index 0000000..52c6485
Binary files /dev/null and b/_framework/System.Private.Uri.wasm.br differ
diff --git a/_framework/System.Private.Uri.wasm.gz b/_framework/System.Private.Uri.wasm.gz
new file mode 100644
index 0000000..9b2d572
Binary files /dev/null and b/_framework/System.Private.Uri.wasm.gz differ
diff --git a/_framework/System.Private.Xml.wasm b/_framework/System.Private.Xml.wasm
new file mode 100644
index 0000000..7d4d499
Binary files /dev/null and b/_framework/System.Private.Xml.wasm differ
diff --git a/_framework/System.Private.Xml.wasm.br b/_framework/System.Private.Xml.wasm.br
new file mode 100644
index 0000000..7e9b72c
Binary files /dev/null and b/_framework/System.Private.Xml.wasm.br differ
diff --git a/_framework/System.Private.Xml.wasm.gz b/_framework/System.Private.Xml.wasm.gz
new file mode 100644
index 0000000..5ee52ec
Binary files /dev/null and b/_framework/System.Private.Xml.wasm.gz differ
diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm b/_framework/System.Runtime.InteropServices.JavaScript.wasm
new file mode 100644
index 0000000..2da7ee0
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm differ
diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm.br b/_framework/System.Runtime.InteropServices.JavaScript.wasm.br
new file mode 100644
index 0000000..9a92733
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm.br differ
diff --git a/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz b/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz
new file mode 100644
index 0000000..902abdd
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.JavaScript.wasm.gz differ
diff --git a/_framework/System.Runtime.InteropServices.wasm b/_framework/System.Runtime.InteropServices.wasm
new file mode 100644
index 0000000..8911e79
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.wasm differ
diff --git a/_framework/System.Runtime.InteropServices.wasm.br b/_framework/System.Runtime.InteropServices.wasm.br
new file mode 100644
index 0000000..c805eb3
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.wasm.br differ
diff --git a/_framework/System.Runtime.InteropServices.wasm.gz b/_framework/System.Runtime.InteropServices.wasm.gz
new file mode 100644
index 0000000..4dc0cff
Binary files /dev/null and b/_framework/System.Runtime.InteropServices.wasm.gz differ
diff --git a/_framework/System.Runtime.wasm b/_framework/System.Runtime.wasm
new file mode 100644
index 0000000..b631425
Binary files /dev/null and b/_framework/System.Runtime.wasm differ
diff --git a/_framework/System.Runtime.wasm.br b/_framework/System.Runtime.wasm.br
new file mode 100644
index 0000000..a331c41
Binary files /dev/null and b/_framework/System.Runtime.wasm.br differ
diff --git a/_framework/System.Runtime.wasm.gz b/_framework/System.Runtime.wasm.gz
new file mode 100644
index 0000000..f45c85e
Binary files /dev/null and b/_framework/System.Runtime.wasm.gz differ
diff --git a/_framework/System.Security.Cryptography.wasm b/_framework/System.Security.Cryptography.wasm
new file mode 100644
index 0000000..bda9ba1
Binary files /dev/null and b/_framework/System.Security.Cryptography.wasm differ
diff --git a/_framework/System.Security.Cryptography.wasm.br b/_framework/System.Security.Cryptography.wasm.br
new file mode 100644
index 0000000..5ff9df8
Binary files /dev/null and b/_framework/System.Security.Cryptography.wasm.br differ
diff --git a/_framework/System.Security.Cryptography.wasm.gz b/_framework/System.Security.Cryptography.wasm.gz
new file mode 100644
index 0000000..0a25a83
Binary files /dev/null and b/_framework/System.Security.Cryptography.wasm.gz differ
diff --git a/_framework/System.Text.RegularExpressions.wasm b/_framework/System.Text.RegularExpressions.wasm
new file mode 100644
index 0000000..1e5354d
Binary files /dev/null and b/_framework/System.Text.RegularExpressions.wasm differ
diff --git a/_framework/System.Text.RegularExpressions.wasm.br b/_framework/System.Text.RegularExpressions.wasm.br
new file mode 100644
index 0000000..145d835
Binary files /dev/null and b/_framework/System.Text.RegularExpressions.wasm.br differ
diff --git a/_framework/System.Text.RegularExpressions.wasm.gz b/_framework/System.Text.RegularExpressions.wasm.gz
new file mode 100644
index 0000000..33e1605
Binary files /dev/null and b/_framework/System.Text.RegularExpressions.wasm.gz differ
diff --git a/_framework/System.Threading.Thread.wasm b/_framework/System.Threading.Thread.wasm
new file mode 100644
index 0000000..e2e4872
Binary files /dev/null and b/_framework/System.Threading.Thread.wasm differ
diff --git a/_framework/System.Threading.Thread.wasm.br b/_framework/System.Threading.Thread.wasm.br
new file mode 100644
index 0000000..e308e87
Binary files /dev/null and b/_framework/System.Threading.Thread.wasm.br differ
diff --git a/_framework/System.Threading.Thread.wasm.gz b/_framework/System.Threading.Thread.wasm.gz
new file mode 100644
index 0000000..d7133f7
Binary files /dev/null and b/_framework/System.Threading.Thread.wasm.gz differ
diff --git a/_framework/System.Threading.wasm b/_framework/System.Threading.wasm
new file mode 100644
index 0000000..8c8d38d
Binary files /dev/null and b/_framework/System.Threading.wasm differ
diff --git a/_framework/System.Threading.wasm.br b/_framework/System.Threading.wasm.br
new file mode 100644
index 0000000..70f66c8
Binary files /dev/null and b/_framework/System.Threading.wasm.br differ
diff --git a/_framework/System.Threading.wasm.gz b/_framework/System.Threading.wasm.gz
new file mode 100644
index 0000000..f06c2f8
Binary files /dev/null and b/_framework/System.Threading.wasm.gz differ
diff --git a/_framework/System.wasm b/_framework/System.wasm
new file mode 100644
index 0000000..f8df49f
Binary files /dev/null and b/_framework/System.wasm differ
diff --git a/_framework/System.wasm.br b/_framework/System.wasm.br
new file mode 100644
index 0000000..e71b167
Binary files /dev/null and b/_framework/System.wasm.br differ
diff --git a/_framework/System.wasm.gz b/_framework/System.wasm.gz
new file mode 100644
index 0000000..1cb0c8e
Binary files /dev/null and b/_framework/System.wasm.gz differ
diff --git a/_framework/avalonia.js b/_framework/avalonia.js
new file mode 100755
index 0000000..9364bf1
--- /dev/null
+++ b/_framework/avalonia.js
@@ -0,0 +1,2 @@
+var g=class{static getCaretCoordinates(e,t,i){var b,d;if(!W)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");let n=(b=i==null?void 0:i.debug)!=null?b:!1;if(n){let p=document.querySelector("#input-textarea-caret-position-mirror-div");p&&((d=p.parentNode)==null||d.removeChild(p))}let r=document.createElement("div");r.id="input-textarea-caret-position-mirror-div",document.body.appendChild(r);let a=r.style,o=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle,l=e.nodeName==="INPUT";a.whiteSpace="pre-wrap",l||(a.wordWrap="break-word"),a.position="absolute",n||(a.visibility="hidden"),_.forEach(p=>{if(l&&p==="lineHeight")if(o.boxSizing==="border-box"){let w=parseInt(o.height),B=parseInt(o.paddingTop)+parseInt(o.paddingBottom)+parseInt(o.borderTopWidth)+parseInt(o.borderBottomWidth),D=B+parseInt(o.lineHeight);w>D?a.lineHeight=`${w-B}px`:w===D?a.lineHeight=o.lineHeight:a.lineHeight="0"}else a.lineHeight=o.height;else a[p]=o[p]}),F?e.scrollHeight>parseInt(o.height)&&(a.overflowY="scroll"):a.overflow="hidden",r.textContent=e.value.substring(0,t),l&&(r.textContent=r.textContent.replace(/\s/g,"\xA0"));let u=document.createElement("span");u.textContent=e.value.substring(t)||".",r.appendChild(u);let c={top:u.offsetTop+parseInt(o.borderTopWidth),left:u.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return n?u.style.backgroundColor="#aaa":document.body.removeChild(r),c}},_=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],W=typeof window!="undefined",F=W&&window.mozInnerScreenX!=null;var f=class{static initializeBackgroundHandlers(){this.clipboardState===0&&(globalThis.addEventListener("paste",e=>{this.clipboardState===2&&this.resolveClipboard(e.clipboardData.getData("text"))}),this.clipboardState=1)}static async readClipboardText(){if(globalThis.navigator.clipboard.readText)return await globalThis.navigator.clipboard.readText();try{return await new Promise((e,t)=>{this.clipboardState=2,this.resolveClipboard=e,this.rejectClipboard=t})}finally{this.clipboardState=1,this.resolveClipboard=null,this.rejectClipboard=null}}static subscribeKeyEvents(e,t,i){let n=a=>{t(a.code,a.key,this.getModifiers(a))&&this.clipboardState!==2&&a.preventDefault()};e.addEventListener("keydown",n);let r=a=>{i(a.code,a.key,this.getModifiers(a))&&a.preventDefault(),this.rejectClipboard&&this.rejectClipboard()};return e.addEventListener("keyup",r),()=>{e.removeEventListener("keydown",n),e.removeEventListener("keyup",r)}}static subscribeTextEvents(e,t,i,n,r){let a=c=>{i(c)&&c.preventDefault()};e.addEventListener("compositionstart",a);let o=c=>{let b=c.getTargetRanges(),d=-1,p=-1;b.length>0&&(d=b[0].startOffset,p=b[0].endOffset),c.inputType==="insertCompositionText"&&(d=2,p=d+2),t(c,d,p)&&c.preventDefault()};e.addEventListener("beforeinput",o);let l=c=>{n(c)&&c.preventDefault()};e.addEventListener("compositionupdate",l);let u=c=>{r(c)&&c.preventDefault()};return e.addEventListener("compositionend",u),()=>{e.removeEventListener("compositionstart",a),e.removeEventListener("compositionupdate",l),e.removeEventListener("compositionend",u)}}static subscribePointerEvents(e,t,i,n,r,a){let o=d=>{t(d),d.preventDefault()},l=d=>{i(d),d.preventDefault()},u=d=>{n(d),d.preventDefault()},c=d=>{r(d),d.preventDefault()},b=d=>{a(d),d.preventDefault()};return e.addEventListener("pointermove",o),e.addEventListener("pointerdown",l),e.addEventListener("pointerup",u),e.addEventListener("wheel",b),e.addEventListener("pointercancel",c),()=>{e.removeEventListener("pointerover",o),e.removeEventListener("pointerdown",l),e.removeEventListener("pointerup",u),e.removeEventListener("pointercancel",c),e.removeEventListener("wheel",b)}}static subscribeInputEvents(e,t){let i=n=>{t(n.value)&&n.preventDefault()};return e.addEventListener("input",i),()=>{e.removeEventListener("input",i)}}static subscribeDropEvents(e,t){let i=n=>{t(n)&&n.preventDefault()};return e.addEventListener("dragover",i),e.addEventListener("dragenter",i),e.addEventListener("dragleave",i),e.addEventListener("drop",i),()=>{e.removeEventListener("dragover",i),e.removeEventListener("dragenter",i),e.removeEventListener("dragleave",i),e.removeEventListener("drop",i)}}static getCoalescedEvents(e){return e.getCoalescedEvents()}static subscribeKeyboardGeometryChange(e,t){"virtualKeyboard"in navigator&&navigator.virtualKeyboard.addEventListener("geometrychange",i=>{let n=e.getBoundingClientRect(),r=i.target.boundingRect;t({x:r.x-n.x,y:r.y-n.y,width:r.width,height:r.height})})}static subscribeVisibilityChange(e){return document.addEventListener("visibilitychange",()=>{e(document.visibilityState==="visible")}),document.visibilityState==="visible"}static clearInput(e){e.value=""}static focusElement(e){e.focus()}static setCursor(e,t){t==="default"?e.style.removeProperty("cursor"):e.style.cursor=t}static setBounds(e,t,i,n,r,a){e.style.left=t.toFixed(0)+"px",e.style.top=i.toFixed(0)+"px";let{left:o,top:l}=g.getCaretCoordinates(e,a);e.style.left=(t-o).toFixed(0)+"px",e.style.top=(i-l).toFixed(0)+"px"}static hide(e){e.style.display="none"}static show(e){e.style.display="block"}static setSurroundingText(e,t,i,n){!e||(e.value=t,e.setSelectionRange(i,n),e.style.width="20px",e.style.width=`${e.scrollWidth}px`)}static getModifiers(e){let t=0;return e.ctrlKey&&(t|=2),e.altKey&&(t|=1),e.shiftKey&&(t|=4),e.metaKey&&(t|=8),t.toString()}static setPointerCapture(e,t){e.setPointerCapture(t)}static releasePointerCapture(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}};f.clipboardState=0;var m=class{static addClass(e,t){e.classList.add(t)}static observeDarkMode(e){if(globalThis.matchMedia===void 0)return!1;let t=globalThis.matchMedia("(prefers-color-scheme: dark)"),i=globalThis.matchMedia("(prefers-contrast: more)");return t.addEventListener("change",n=>{e(n.matches,i.matches)}),i.addEventListener("change",n=>{e(t.matches,n.matches)}),{isDarkMode:t.matches,isHighContrast:i.matches}}static getFirstElementByClassName(e,t){let i=(t!=null?t:globalThis.document).getElementsByClassName(e);return i?i[0]:null}static createAvaloniaCanvas(e){var n;let t=(n=e.getAttribute("data-containerId"))!=null?n:"0000",i=document.createElement("canvas");return i.id=`canvas${t}`,i.classList.add("avalonia-canvas"),i.style.width="100%",i.style.height="100%",i.style.position="absolute",i}static attachCanvas(e,t){e.prepend(t)}static detachCanvas(e,t){e.removeChild(t)}static createAvaloniaHost(e){let t=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10);e.classList.add("avalonia-container"),e.tabIndex=0,e.setAttribute("data-containerId",t),e.oncontextmenu=function(){return!1},e.style.overflow="hidden",e.style.touchAction="none";let i=document.createElement("div");i.id=`nativeHost${t}`,i.classList.add("avalonia-native-host"),i.style.left="0px",i.style.top="0px",i.style.width="100%",i.style.height="100%",i.style.position="absolute";let n=document.createElement("input");return n.id=`inputElement${t}`,n.classList.add("avalonia-input-element"),n.autocapitalize="none",n.type="text",n.spellcheck=!1,n.style.padding="0",n.style.margin="0",n.style.borderWidth="0",n.style.position="absolute",n.style.overflow="hidden",n.style.borderStyle="hidden",n.style.outline="none",n.style.background="transparent",n.style.color="transparent",n.style.display="none",n.style.height="20px",n.style.zIndex="-1",n.onpaste=function(){return!1},n.oncopy=function(){return!1},n.oncut=function(){return!1},e.prepend(n),e.prepend(i),{host:e,nativeHost:i,inputElement:n}}static isFullscreen(){return document.fullscreenElement!=null}static async setFullscreen(e){e?await document.documentElement.requestFullscreen():await document.exitFullscreen()}static initSafeAreaPadding(){document.documentElement.style.setProperty("--av-sat","env(safe-area-inset-top)"),document.documentElement.style.setProperty("--av-sar","env(safe-area-inset-right)"),document.documentElement.style.setProperty("--av-sab","env(safe-area-inset-bottom)"),document.documentElement.style.setProperty("--av-sal","env(safe-area-inset-left)")}static getSafeAreaPadding(){let e=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--av-sat")),t=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--av-sab")),i=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--av-sal")),n=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--av-sar"));return[i,e,t,n]}};var S=class{static hasNativeFilePicker(){return"showSaveFilePicker"in globalThis}static isMobile(){var r;let e=(r=globalThis.navigator)==null?void 0:r.userAgentData;if(e)return e.mobile;let t=navigator.userAgent,i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,n=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;return i.test(t)||n.test(t.substr(0,4))}static isTv(){return navigator.userAgent.includes("SmartTV")}};var I=typeof SharedArrayBuffer!="undefined";function T(s){return I&&s[Symbol.toStringTag]==="SharedArrayBuffer"}var L=class{static async seek(e,t){return await e.seek(t)}static async truncate(e,t){return await e.truncate(t)}static async close(e){return await e.close()}static async write(e,t,i,n){var o;let r=(o=globalThis.getDotnetRuntime(0))==null?void 0:o.localHeapViewU8(),a;if(t._pointer>0&&t._length>0&&r&&!T(r.buffer))a=new Uint8Array(r.buffer,t._pointer+i,n);else{let l=new Uint8Array(n);t.copyTo(l,i),a=t}return await e.write(a)}static byteLength(e){return e.size}static async sliceArrayBuffer(e,t,i){let n=await e.slice(t,t+i).arrayBuffer();return new Uint8Array(n)}static toMemoryView(e){return e}};var z=class{},H=class{static createDefaultChild(e){return document.createElement("div")}static createAttachment(){return new z}static initializeWithChildHandle(e,t){e._child=t,e._child.style.position="absolute"}static attachTo(e,t){e._host&&e._child&&e._host.removeChild(e._child),e._host=t,e._host&&e._child&&e._host.appendChild(e._child)}static showInBounds(e,t,i,n,r){e._child&&(e._child.style.top=`${i}px`,e._child.style.left=`${t}px`,e._child.style.width=`${n}px`,e._child.style.height=`${r}px`,e._child.style.display="block")}static hideWithSize(e,t,i){e._child&&(e._child.style.width=`${t}px`,e._child.style.height=`${i}px`,e._child.style.display="none")}static releaseChild(e){e._child&&(e._child=void 0)}};var k=class{static addBackHandler(e){history.pushState(null,"",window.location.href),window.onpopstate=()=>{e()?history.forward():history.back()}}};var P=class{static itemsArrayAt(e,t){let i=e[t];if(!i)return[];let n=[];for(let r=0;r(i[i.Software2D=1]="Software2D",i[i.WebGL1=2]="WebGL1",i[i.WebGL2=3]="WebGL2",i))(v||{}),y=class{constructor(e,t){this.context=e;this.mode=t}};var C=class{static observeSize(e,t){return this.resizeObserver||(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.callbacks=new Map),this.resizeObserver.callbacks.set(e,t),this.resizeObserver.observe(e,{box:"content-box"}),()=>{var i,n;(i=this.resizeObserver)==null||i.callbacks.delete(e),(n=this.resizeObserver)==null||n.unobserve(e)}}static onResize(e,t){for(let i of e){let n=t.callbacks.get(i.target);if(!n)continue;let r=window.devicePixelRatio,a,o,l=r;i.devicePixelContentBoxSize?(a=i.devicePixelContentBoxSize[0].inlineSize,o=i.devicePixelContentBoxSize[0].blockSize,l=1):i.contentBoxSize?i.contentBoxSize[0]?(a=i.contentBoxSize[0].inlineSize,o=i.contentBoxSize[0].blockSize):(a=i.contentBoxSize.inlineSize,o=i.contentBoxSize.blockSize):(a=i.contentRect.width,o=i.contentRect.height);let u=Math.round(a*l),c=Math.round(o*l);n(u,c,r)}}};var h=class extends y{constructor(t,i,n){super(i,n);this.canvas=t;this.context=i;this.mode=n;C.observeSize(t,(r,a,o)=>{this.sizeParams=[r,a,o],this.sizeChangedCallback&&this.sizeChangedCallback(r,a,o)})}destroy(){delete this.sizeChangedCallback}onSizeChanged(t){if(this.sizeChangedCallback)throw new Error("For simplicity, we don't support multiple size changed callbacks per surface, not needed yet.");this.sizeChangedCallback=t}ensureSize(){this.sizeParams&&(this.canvas.width=this.sizeParams[0],this.canvas.height=this.sizeParams[1],delete this.sizeParams)}};var E=class extends h{constructor(t){let i=t.getContext("2d",{alpha:!0});if(!i)throw new Error("HTMLCanvasElement.getContext(2d) returned null.");super(t,i,1);this.canvas=t;this.runtime=globalThis.getDotnetRuntime(0)}putPixelData(t,i,n){var l;this.ensureSize();let r=(l=this.runtime)==null?void 0:l.localHeapViewU8(),a;if(t._pointer>0&&t._length>0&&r&&!T(r.buffer))a=new Uint8ClampedArray(r.buffer,t._pointer,t._length);else{let u=new Uint8Array(t.byteLength);t.copyTo(u),a=new Uint8ClampedArray(u.buffer)}let o=new ImageData(a,i,n);this.context.putImageData(o,0,0)}};function N(){var t,i,n,r;let s=globalThis,e=(i=s.Module)!=null?i:(t=s.getDotnetRuntime(0))==null?void 0:t.Module;return(r=(n=e==null?void 0:e.GL)!=null?n:s.AvaloniaGL)!=null?r:s.SkiaSharpGL}var x=class extends h{constructor(t,i){var u,c;let n=N();if(!n)throw new Error("Module.GL object wasn't initialized, WebGL can't be used.");let r=i===2?"webgl":"webgl2",a={alpha:!0,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!0,majorVersion:i===2?1:2,minorVersion:0,enableExtensionsByDefault:1,explicitSwapControl:0},o=t.getContext(r,a);if(!o)throw new Error(`HTMLCanvasElement.getContext(${r}) returned null.`);let l=n.registerContext(o,a);n.makeContextCurrent(l),o.gl_handle=l;super(t,o,1);this.canvas=t;this.contextHandle=l,this.fboId=(c=(u=o.getParameter(o.FRAMEBUFFER_BINDING))==null?void 0:u.id)!=null?c:0,this.stencil=o.getParameter(o.STENCIL_BITS),this.sample=o.getParameter(o.SAMPLES),this.depth=o.getParameter(o.DEPTH_BITS)}};var M=class{static create(e,t){if(!e)throw new Error("No html container was provided.");let i=m.createAvaloniaCanvas(e);m.attachCanvas(e,i);try{if(t===1)return new E(i);if(t===2||t===3)return new x(i,t);throw new Error(`Unsupported rendering mode: ${v[t]}`)}catch(n){throw m.detachCanvas(e,i),n}}static destroy(e){e.destroy()}static onSizeChanged(e,t){e.onSizeChanged(t)}static ensureSize(e){e.ensureSize()}static putPixelData(e,t,i,n){e.putPixelData(t,i,n)}};async function Le(s,e){"serviceWorker"in navigator&&await globalThis.navigator.serviceWorker.register(s,e?{scope:e}:void 0)}export{m as AvaloniaDOM,S as Caniuse,M as CanvasFactory,P as GeneralHelpers,f as InputHelper,H as NativeControlHost,k as NavigationHelper,L as StreamHelper,A as TimerHelper,Le as registerServiceWorker};
+//# sourceMappingURL=avalonia.js.map
diff --git a/_framework/avalonia.js.br b/_framework/avalonia.js.br
new file mode 100644
index 0000000..4d95717
Binary files /dev/null and b/_framework/avalonia.js.br differ
diff --git a/_framework/avalonia.js.gz b/_framework/avalonia.js.gz
new file mode 100644
index 0000000..b817b35
Binary files /dev/null and b/_framework/avalonia.js.gz differ
diff --git a/_framework/avalonia.js.map b/_framework/avalonia.js.map
new file mode 100755
index 0000000..dc15a7c
--- /dev/null
+++ b/_framework/avalonia.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../webapp/modules/avalonia/caretHelper.ts", "../webapp/modules/avalonia/input.ts", "../webapp/modules/avalonia/dom.ts", "../webapp/modules/avalonia/caniuse.ts", "../webapp/modules/avalonia/stream.ts", "../webapp/modules/avalonia/nativeControlHost.ts", "../webapp/modules/avalonia/navigationHelper.ts", "../webapp/modules/avalonia/generalHelpers.ts", "../webapp/modules/avalonia/timer.ts", "../webapp/modules/avalonia/surfaces/surfaceBase.ts", "../webapp/modules/avalonia/surfaces/resizeHandler.ts", "../webapp/modules/avalonia/surfaces/htmlSurfaceBase.ts", "../webapp/modules/avalonia/surfaces/softwareSurface.ts", "../webapp/modules/avalonia/surfaces/webGlSurface.ts", "../webapp/modules/avalonia/surfaces/surfaceFactory.ts", "../webapp/modules/avalonia.ts"],
+ "sourcesContent": ["// Based on https://github.com/component/textarea-caret-position/blob/master/index.js\r\nexport class CaretHelper {\r\n public static getCaretCoordinates(\r\n element: HTMLInputElement | HTMLTextAreaElement,\r\n position: number,\r\n options?: { debug: boolean }\r\n ) {\r\n if (!isBrowser) {\r\n throw new Error(\r\n \"textarea-caret-position#getCaretCoordinates should only be called in a browser\"\r\n );\r\n }\r\n\r\n const debug = options?.debug ?? false;\r\n if (debug) {\r\n const el = document.querySelector(\r\n \"#input-textarea-caret-position-mirror-div\"\r\n );\r\n if (el) el.parentNode?.removeChild(el);\r\n }\r\n\r\n // The mirror div will replicate the textarea's style\r\n const div = document.createElement(\"div\");\r\n div.id = \"input-textarea-caret-position-mirror-div\";\r\n document.body.appendChild(div);\r\n\r\n const style = div.style;\r\n const computed = window.getComputedStyle\r\n ? window.getComputedStyle(element)\r\n : ((element as any).currentStyle as CSSStyleDeclaration); // currentStyle for IE < 9\r\n const isInput = element.nodeName === \"INPUT\";\r\n\r\n // Default textarea styles\r\n style.whiteSpace = \"pre-wrap\";\r\n if (!isInput) style.wordWrap = \"break-word\"; // only for textarea-s\r\n\r\n // Position off-screen\r\n style.position = \"absolute\"; // required to return coordinates properly\r\n if (!debug) style.visibility = \"hidden\"; // not 'display: none' because we want rendering\r\n\r\n // Transfer the element's properties to the div\r\n properties.forEach((prop: string) => {\r\n if (isInput && prop === \"lineHeight\") {\r\n // Special case for s because text is rendered centered and line height may be != height\r\n if (computed.boxSizing === \"border-box\") {\r\n const height = parseInt(computed.height);\r\n const outerHeight =\r\n parseInt(computed.paddingTop) +\r\n parseInt(computed.paddingBottom) +\r\n parseInt(computed.borderTopWidth) +\r\n parseInt(computed.borderBottomWidth);\r\n const targetHeight = outerHeight + parseInt(computed.lineHeight);\r\n if (height > targetHeight) {\r\n style.lineHeight = `${height - outerHeight}px`;\r\n } else if (height === targetHeight) {\r\n style.lineHeight = computed.lineHeight;\r\n } else {\r\n style.lineHeight = \"0\";\r\n }\r\n } else {\r\n style.lineHeight = computed.height;\r\n }\r\n } else {\r\n (style as any)[prop] = (computed as any)[prop];\r\n }\r\n });\r\n\r\n if (isFirefox) {\r\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\r\n if (element.scrollHeight > parseInt(computed.height)) {\r\n style.overflowY = \"scroll\";\r\n }\r\n } else {\r\n style.overflow = \"hidden\"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\r\n }\r\n\r\n div.textContent = element.value.substring(0, position);\r\n // The second special handling for input type=\"text\" vs textarea:\r\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\r\n if (isInput) div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\r\n\r\n const span = document.createElement(\"span\");\r\n // Wrapping must be replicated *exactly*, including when a long word gets\r\n // onto the next line, with whitespace at the end of the line before (#7).\r\n // The *only* reliable way to do that is to copy the *entire* rest of the\r\n // textarea's content into the created at the caret position.\r\n // For inputs, just '.' would be enough, but no need to bother.\r\n span.textContent = element.value.substring(position) || \".\"; // || because a completely empty faux span doesn't render at all\r\n div.appendChild(span);\r\n\r\n const coordinates = {\r\n top: span.offsetTop + parseInt(computed.borderTopWidth),\r\n left: span.offsetLeft + parseInt(computed.borderLeftWidth),\r\n height: parseInt(computed.lineHeight)\r\n };\r\n\r\n if (debug) {\r\n span.style.backgroundColor = \"#aaa\";\r\n } else {\r\n document.body.removeChild(div);\r\n }\r\n\r\n return coordinates;\r\n }\r\n}\r\n\r\nconst properties = [\r\n \"direction\", // RTL support\r\n \"boxSizing\",\r\n \"width\", // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\r\n \"height\",\r\n \"overflowX\",\r\n \"overflowY\", // copy the scrollbar for IE\r\n\r\n \"borderTopWidth\",\r\n \"borderRightWidth\",\r\n \"borderBottomWidth\",\r\n \"borderLeftWidth\",\r\n \"borderStyle\",\r\n\r\n \"paddingTop\",\r\n \"paddingRight\",\r\n \"paddingBottom\",\r\n \"paddingLeft\",\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n \"fontStyle\",\r\n \"fontVariant\",\r\n \"fontWeight\",\r\n \"fontStretch\",\r\n \"fontSize\",\r\n \"fontSizeAdjust\",\r\n \"lineHeight\",\r\n \"fontFamily\",\r\n\r\n \"textAlign\",\r\n \"textTransform\",\r\n \"textIndent\",\r\n \"textDecoration\", // might not make a difference, but better be safe\r\n\r\n \"letterSpacing\",\r\n \"wordSpacing\",\r\n\r\n \"tabSize\",\r\n \"MozTabSize\"\r\n];\r\n\r\nconst isBrowser = typeof window !== \"undefined\";\r\nconst isFirefox = isBrowser && (window as any).mozInnerScreenX != null;\r\n", "import { CaretHelper } from \"./caretHelper\";\r\n\r\nenum RawInputModifiers {\r\n None = 0,\r\n Alt = 1,\r\n Control = 2,\r\n Shift = 4,\r\n Meta = 8,\r\n\r\n LeftMouseButton = 16,\r\n RightMouseButton = 32,\r\n MiddleMouseButton = 64,\r\n XButton1MouseButton = 128,\r\n XButton2MouseButton = 256,\r\n KeyboardMask = Alt | Control | Shift | Meta,\r\n\r\n PenInverted = 512,\r\n PenEraser = 1024,\r\n PenBarrelButton = 2048\r\n}\r\n\r\n/*\r\n* This is a hack to handle Mozilla clipboard events in a more convinient way for framework users.\r\n* In the browser, events go in order KeyDown -> Paste -> KeyUp.\r\n* On KeyDown we trigger Avalonia handlers, which might execute readClipboardText.\r\n* When readClipboardText was executed, we mark ClipboardState as Pending and setup clipboard promise,\r\n* which will un-handle KeyDown event, basically allowing browser to pass a Paste event properly.\r\n* On actual Paste event we execute promise callbacks, resuming async operation, and returning pasted text to the app.\r\n* Note #1, on every KeyUp event we will reset all the state and reject pending promises if any, as this event it expected to come after Paste.\r\n* Note #2, whole this code will be executed only on legacy browsers like Mozilla, where clipboard.readText is not available.\r\n* Note #3, with all of these hacks Clipboard.ReadText will still work only on actual \"paste\" gesture initiated by user.\r\n* */\r\nenum ClipboardState {\r\n None,\r\n Ready,\r\n Pending\r\n}\r\n\r\nexport class InputHelper {\r\n static clipboardState: ClipboardState = ClipboardState.None;\r\n static resolveClipboard?: any;\r\n static rejectClipboard?: any;\r\n\r\n public static initializeBackgroundHandlers() {\r\n if (this.clipboardState !== ClipboardState.None) {\r\n return;\r\n }\r\n\r\n globalThis.addEventListener(\"paste\", (args: any) => {\r\n if (this.clipboardState === ClipboardState.Pending) {\r\n this.resolveClipboard(args.clipboardData.getData(\"text\"));\r\n }\r\n });\r\n this.clipboardState = ClipboardState.Ready;\r\n }\r\n\r\n public static async readClipboardText(): Promise {\r\n if (globalThis.navigator.clipboard.readText) {\r\n return await globalThis.navigator.clipboard.readText();\r\n } else {\r\n try {\r\n return await new Promise((resolve, reject) => {\r\n this.clipboardState = ClipboardState.Pending;\r\n this.resolveClipboard = resolve;\r\n this.rejectClipboard = reject;\r\n });\r\n } finally {\r\n this.clipboardState = ClipboardState.Ready;\r\n this.resolveClipboard = null;\r\n this.rejectClipboard = null;\r\n }\r\n }\r\n }\r\n\r\n public static subscribeKeyEvents(\r\n element: HTMLInputElement,\r\n keyDownCallback: (code: string, key: string, modifiers: string) => boolean,\r\n keyUpCallback: (code: string, key: string, modifiers: string) => boolean) {\r\n const keyDownHandler = (args: KeyboardEvent) => {\r\n if (keyDownCallback(args.code, args.key, this.getModifiers(args))) {\r\n if (this.clipboardState !== ClipboardState.Pending) {\r\n args.preventDefault();\r\n }\r\n }\r\n };\r\n element.addEventListener(\"keydown\", keyDownHandler);\r\n\r\n const keyUpHandler = (args: KeyboardEvent) => {\r\n if (keyUpCallback(args.code, args.key, this.getModifiers(args))) {\r\n args.preventDefault();\r\n }\r\n if (this.rejectClipboard) {\r\n this.rejectClipboard();\r\n }\r\n };\r\n\r\n element.addEventListener(\"keyup\", keyUpHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"keydown\", keyDownHandler);\r\n element.removeEventListener(\"keyup\", keyUpHandler);\r\n };\r\n }\r\n\r\n public static subscribeTextEvents(\r\n element: HTMLInputElement,\r\n beforeInputCallback: (args: InputEvent, start: number, end: number) => boolean,\r\n compositionStartCallback: (args: CompositionEvent) => boolean,\r\n compositionUpdateCallback: (args: CompositionEvent) => boolean,\r\n compositionEndCallback: (args: CompositionEvent) => boolean) {\r\n const compositionStartHandler = (args: CompositionEvent) => {\r\n if (compositionStartCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionstart\", compositionStartHandler);\r\n\r\n const beforeInputHandler = (args: InputEvent) => {\r\n const ranges = args.getTargetRanges();\r\n let start = -1;\r\n let end = -1;\r\n if (ranges.length > 0) {\r\n start = ranges[0].startOffset;\r\n end = ranges[0].endOffset;\r\n }\r\n\r\n if (args.inputType === \"insertCompositionText\") {\r\n start = 2;\r\n end = start + 2;\r\n }\r\n if (beforeInputCallback(args, start, end)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"beforeinput\", beforeInputHandler);\r\n\r\n const compositionUpdateHandler = (args: CompositionEvent) => {\r\n if (compositionUpdateCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n\r\n const compositionEndHandler = (args: CompositionEvent) => {\r\n if (compositionEndCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionend\", compositionEndHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"compositionstart\", compositionStartHandler);\r\n element.removeEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n element.removeEventListener(\"compositionend\", compositionEndHandler);\r\n };\r\n }\r\n\r\n public static subscribePointerEvents(\r\n element: HTMLInputElement,\r\n pointerMoveCallback: (args: PointerEvent) => boolean,\r\n pointerDownCallback: (args: PointerEvent) => boolean,\r\n pointerUpCallback: (args: PointerEvent) => boolean,\r\n pointerCancelCallback: (args: PointerEvent) => boolean,\r\n wheelCallback: (args: WheelEvent) => boolean\r\n ) {\r\n const pointerMoveHandler = (args: PointerEvent) => {\r\n pointerMoveCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerDownHandler = (args: PointerEvent) => {\r\n pointerDownCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerUpHandler = (args: PointerEvent) => {\r\n pointerUpCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerCancelHandler = (args: PointerEvent) => {\r\n pointerCancelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const wheelHandler = (args: WheelEvent) => {\r\n wheelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n element.addEventListener(\"pointermove\", pointerMoveHandler);\r\n element.addEventListener(\"pointerdown\", pointerDownHandler);\r\n element.addEventListener(\"pointerup\", pointerUpHandler);\r\n element.addEventListener(\"wheel\", wheelHandler);\r\n element.addEventListener(\"pointercancel\", pointerCancelHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"pointerover\", pointerMoveHandler);\r\n element.removeEventListener(\"pointerdown\", pointerDownHandler);\r\n element.removeEventListener(\"pointerup\", pointerUpHandler);\r\n element.removeEventListener(\"pointercancel\", pointerCancelHandler);\r\n element.removeEventListener(\"wheel\", wheelHandler);\r\n };\r\n }\r\n\r\n public static subscribeInputEvents(\r\n element: HTMLInputElement,\r\n inputCallback: (value: string) => boolean\r\n ) {\r\n const inputHandler = (args: Event) => {\r\n if (inputCallback((args as any).value)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"input\", inputHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"input\", inputHandler);\r\n };\r\n }\r\n\r\n public static subscribeDropEvents(\r\n element: HTMLInputElement,\r\n dragEvent: (args: any) => boolean\r\n ) {\r\n const dragHandler = (args: Event) => {\r\n if (dragEvent(args as any)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"dragover\", dragHandler);\r\n element.addEventListener(\"dragenter\", dragHandler);\r\n element.addEventListener(\"dragleave\", dragHandler);\r\n element.addEventListener(\"drop\", dragHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"dragover\", dragHandler);\r\n element.removeEventListener(\"dragenter\", dragHandler);\r\n element.removeEventListener(\"dragleave\", dragHandler);\r\n element.removeEventListener(\"drop\", dragHandler);\r\n };\r\n }\r\n\r\n public static getCoalescedEvents(pointerEvent: PointerEvent): PointerEvent[] {\r\n return pointerEvent.getCoalescedEvents();\r\n }\r\n\r\n public static subscribeKeyboardGeometryChange(\r\n element: HTMLInputElement,\r\n handler: (args: any) => boolean) {\r\n if (\"virtualKeyboard\" in navigator) {\r\n // (navigator as any).virtualKeyboard.overlaysContent = true;\r\n (navigator as any).virtualKeyboard.addEventListener(\"geometrychange\", (event: any) => {\r\n const elementRect = element.getBoundingClientRect();\r\n const keyboardRect = event.target.boundingRect as DOMRect;\r\n handler({\r\n x: keyboardRect.x - elementRect.x,\r\n y: keyboardRect.y - elementRect.y,\r\n width: keyboardRect.width,\r\n height: keyboardRect.height\r\n });\r\n });\r\n }\r\n }\r\n\r\n public static subscribeVisibilityChange(\r\n handler: (state: boolean) => void): boolean {\r\n document.addEventListener(\"visibilitychange\", () => {\r\n handler(document.visibilityState === \"visible\");\r\n });\r\n return document.visibilityState === \"visible\";\r\n }\r\n\r\n public static clearInput(inputElement: HTMLInputElement) {\r\n inputElement.value = \"\";\r\n }\r\n\r\n public static focusElement(inputElement: HTMLElement) {\r\n inputElement.focus();\r\n }\r\n\r\n public static setCursor(inputElement: HTMLInputElement, kind: string) {\r\n if (kind === \"default\") {\r\n inputElement.style.removeProperty(\"cursor\");\r\n } else {\r\n inputElement.style.cursor = kind;\r\n }\r\n }\r\n\r\n public static setBounds(inputElement: HTMLInputElement, x: number, y: number, caretWidth: number, caretHeight: number, caret: number) {\r\n inputElement.style.left = (x).toFixed(0) + \"px\";\r\n inputElement.style.top = (y).toFixed(0) + \"px\";\r\n\r\n const { left, top } = CaretHelper.getCaretCoordinates(inputElement, caret);\r\n\r\n inputElement.style.left = (x - left).toFixed(0) + \"px\";\r\n inputElement.style.top = (y - top).toFixed(0) + \"px\";\r\n }\r\n\r\n public static hide(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"none\";\r\n }\r\n\r\n public static show(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"block\";\r\n }\r\n\r\n public static setSurroundingText(inputElement: HTMLInputElement, text: string, start: number, end: number) {\r\n if (!inputElement) {\r\n return;\r\n }\r\n\r\n inputElement.value = text;\r\n inputElement.setSelectionRange(start, end);\r\n inputElement.style.width = \"20px\";\r\n inputElement.style.width = `${inputElement.scrollWidth}px`;\r\n }\r\n\r\n private static getModifiers(args: KeyboardEvent): string {\r\n let modifiers = RawInputModifiers.None;\r\n\r\n if (args.ctrlKey) { modifiers |= RawInputModifiers.Control; }\r\n if (args.altKey) { modifiers |= RawInputModifiers.Alt; }\r\n if (args.shiftKey) { modifiers |= RawInputModifiers.Shift; }\r\n if (args.metaKey) { modifiers |= RawInputModifiers.Meta; }\r\n\r\n return modifiers.toString();\r\n }\r\n\r\n public static setPointerCapture(containerElement: HTMLInputElement, pointerId: number): void {\r\n containerElement.setPointerCapture(pointerId);\r\n }\r\n\r\n public static releasePointerCapture(containerElement: HTMLInputElement, pointerId: number): void {\r\n if (containerElement.hasPointerCapture(pointerId)) {\r\n containerElement.releasePointerCapture(pointerId);\r\n }\r\n }\r\n}\r\n", "\r\nexport class AvaloniaDOM {\r\n public static addClass(element: HTMLElement, className: string): void {\r\n element.classList.add(className);\r\n }\r\n\r\n static observeDarkMode(observer: (isDarkMode: boolean, isHighContrast: boolean) => boolean) {\r\n if (globalThis.matchMedia === undefined) {\r\n return false;\r\n }\r\n\r\n const colorShemeMedia = globalThis.matchMedia(\"(prefers-color-scheme: dark)\");\r\n const prefersContrastMedia = globalThis.matchMedia(\"(prefers-contrast: more)\");\r\n\r\n colorShemeMedia.addEventListener(\"change\", (args: MediaQueryListEvent) => {\r\n observer(args.matches, prefersContrastMedia.matches);\r\n });\r\n prefersContrastMedia.addEventListener(\"change\", (args: MediaQueryListEvent) => {\r\n observer(colorShemeMedia.matches, args.matches);\r\n });\r\n\r\n return {\r\n isDarkMode: colorShemeMedia.matches,\r\n isHighContrast: prefersContrastMedia.matches\r\n };\r\n }\r\n\r\n static getFirstElementByClassName(className: string, parent?: HTMLElement): Element | null {\r\n const elements = (parent ?? globalThis.document).getElementsByClassName(className);\r\n return elements ? elements[0] : null;\r\n }\r\n\r\n static createAvaloniaCanvas(host: HTMLElement): HTMLCanvasElement {\r\n const containerId = host.getAttribute(\"data-containerId\") ?? \"0000\";\r\n\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.id = `canvas${containerId}`;\r\n canvas.classList.add(\"avalonia-canvas\");\r\n canvas.style.width = \"100%\";\r\n canvas.style.height = \"100%\";\r\n canvas.style.position = \"absolute\";\r\n\r\n return canvas;\r\n }\r\n\r\n static attachCanvas(host: HTMLElement, canvas: HTMLCanvasElement): void {\r\n host.prepend(canvas);\r\n }\r\n\r\n static detachCanvas(host: HTMLElement, canvas: HTMLCanvasElement): void {\r\n host.removeChild(canvas);\r\n }\r\n\r\n static createAvaloniaHost(host: HTMLElement) {\r\n const containerId = Math.random().toString(36).replace(/[^a-z]+/g, \"\").substr(2, 10);\r\n\r\n // Root element\r\n host.classList.add(\"avalonia-container\");\r\n host.tabIndex = 0;\r\n host.setAttribute(\"data-containerId\", containerId);\r\n host.oncontextmenu = function () { return false; };\r\n host.style.overflow = \"hidden\";\r\n host.style.touchAction = \"none\";\r\n\r\n // Canvas is lazily created depending on the rendering mode. See createAvaloniaCanvas usage.\r\n\r\n // Native controls host\r\n const nativeHost = document.createElement(\"div\");\r\n nativeHost.id = `nativeHost${containerId}`;\r\n nativeHost.classList.add(\"avalonia-native-host\");\r\n nativeHost.style.left = \"0px\";\r\n nativeHost.style.top = \"0px\";\r\n nativeHost.style.width = \"100%\";\r\n nativeHost.style.height = \"100%\";\r\n nativeHost.style.position = \"absolute\";\r\n\r\n // IME\r\n const inputElement = document.createElement(\"input\");\r\n inputElement.id = `inputElement${containerId}`;\r\n inputElement.classList.add(\"avalonia-input-element\");\r\n inputElement.autocapitalize = \"none\";\r\n inputElement.type = \"text\";\r\n inputElement.spellcheck = false;\r\n inputElement.style.padding = \"0\";\r\n inputElement.style.margin = \"0\";\r\n inputElement.style.borderWidth = \"0\";\r\n inputElement.style.position = \"absolute\";\r\n inputElement.style.overflow = \"hidden\";\r\n inputElement.style.borderStyle = \"hidden\";\r\n inputElement.style.outline = \"none\";\r\n inputElement.style.background = \"transparent\";\r\n inputElement.style.color = \"transparent\";\r\n inputElement.style.display = \"none\";\r\n inputElement.style.height = \"20px\";\r\n inputElement.style.zIndex = \"-1\";\r\n inputElement.onpaste = function () { return false; };\r\n inputElement.oncopy = function () { return false; };\r\n inputElement.oncut = function () { return false; };\r\n\r\n host.prepend(inputElement);\r\n host.prepend(nativeHost);\r\n\r\n return {\r\n host,\r\n nativeHost,\r\n inputElement\r\n };\r\n }\r\n\r\n public static isFullscreen(): boolean {\r\n return document.fullscreenElement != null;\r\n }\r\n\r\n public static async setFullscreen(isFullscreen: boolean) {\r\n if (isFullscreen) {\r\n const doc = document.documentElement;\r\n await doc.requestFullscreen();\r\n } else {\r\n await document.exitFullscreen();\r\n }\r\n }\r\n\r\n public static initSafeAreaPadding(): void {\r\n document.documentElement.style.setProperty(\"--av-sat\", \"env(safe-area-inset-top)\");\r\n document.documentElement.style.setProperty(\"--av-sar\", \"env(safe-area-inset-right)\");\r\n document.documentElement.style.setProperty(\"--av-sab\", \"env(safe-area-inset-bottom)\");\r\n document.documentElement.style.setProperty(\"--av-sal\", \"env(safe-area-inset-left)\");\r\n }\r\n\r\n public static getSafeAreaPadding(): number[] {\r\n const top = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--av-sat\"));\r\n const bottom = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--av-sab\"));\r\n const left = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--av-sal\"));\r\n const right = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--av-sar\"));\r\n\r\n return [left, top, bottom, right];\r\n }\r\n}\r\n", "export class Caniuse {\r\n public static hasNativeFilePicker(): boolean {\r\n return \"showSaveFilePicker\" in globalThis;\r\n }\r\n\r\n public static isMobile(): boolean {\r\n const userAgentData = (globalThis.navigator as any)?.userAgentData;\r\n if (userAgentData) {\r\n return userAgentData.mobile;\r\n }\r\n\r\n const userAgent = navigator.userAgent;\r\n const regex1 = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;\r\n const regex2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;\r\n return regex1.test(userAgent) || regex2.test(userAgent.substr(0, 4));\r\n }\r\n\r\n public static isTv(): boolean {\r\n return navigator.userAgent.includes(\"SmartTV\");\r\n }\r\n}\r\n", "import FileSystemWritableFileStream from \"native-file-system-adapter/types/src/FileSystemWritableFileStream\";\r\n\r\nconst sharedArrayBufferDefined = typeof SharedArrayBuffer !== \"undefined\";\r\nexport function isSharedArrayBuffer(buffer: any): buffer is SharedArrayBuffer {\r\n // BEWARE: In some cases, `instanceof SharedArrayBuffer` returns false even though buffer is an SAB.\r\n // Patch adapted from https://github.com/emscripten-core/emscripten/pull/16994\r\n // See also https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag\r\n return sharedArrayBufferDefined && buffer[Symbol.toStringTag] === \"SharedArrayBuffer\";\r\n}\r\n\r\nexport class StreamHelper {\r\n public static async seek(stream: FileSystemWritableFileStream, position: number) {\r\n return await stream.seek(position);\r\n }\r\n\r\n public static async truncate(stream: FileSystemWritableFileStream, size: number) {\r\n return await stream.truncate(size);\r\n }\r\n\r\n public static async close(stream: FileSystemWritableFileStream) {\r\n return await stream.close();\r\n }\r\n\r\n public static async write(stream: FileSystemWritableFileStream, span: any, offset: number, count: number) {\r\n const heap8 = globalThis.getDotnetRuntime(0)?.localHeapViewU8();\r\n\r\n let buffer: Uint8Array;\r\n if (span._pointer > 0 && span._length > 0 && heap8 && !isSharedArrayBuffer(heap8.buffer)) {\r\n // Attempt to use undocumented access to the HEAP8 directly\r\n // Note, SharedArrayBuffer cannot be used with ImageData (when WasmEnableThreads = true).\r\n buffer = new Uint8Array(heap8.buffer, span._pointer as number + offset, count);\r\n } else {\r\n // Or fallback to the normal API that does multiple array copies.\r\n const copy = new Uint8Array(count);\r\n span.copyTo(copy, offset);\r\n buffer = span;\r\n }\r\n\r\n return await stream.write(buffer);\r\n }\r\n\r\n public static byteLength(stream: Blob) {\r\n return stream.size;\r\n }\r\n\r\n public static async sliceArrayBuffer(stream: Blob, offset: number, count: number) {\r\n const buffer = await stream.slice(offset, offset + count).arrayBuffer();\r\n return new Uint8Array(buffer);\r\n }\r\n\r\n public static toMemoryView(buffer: Uint8Array): Uint8Array {\r\n return buffer;\r\n }\r\n}\r\n", "class NativeControlHostTopLevelAttachment {\r\n _child?: HTMLElement;\r\n _host?: HTMLElement;\r\n}\r\n\r\nexport class NativeControlHost {\r\n public static createDefaultChild(parent?: HTMLElement): HTMLElement {\r\n return document.createElement(\"div\");\r\n }\r\n\r\n public static createAttachment(): NativeControlHostTopLevelAttachment {\r\n return new NativeControlHostTopLevelAttachment();\r\n }\r\n\r\n public static initializeWithChildHandle(element: NativeControlHostTopLevelAttachment, child: HTMLElement): void {\r\n element._child = child;\r\n element._child.style.position = \"absolute\";\r\n }\r\n\r\n public static attachTo(element: NativeControlHostTopLevelAttachment, host?: HTMLElement): void {\r\n if (element._host && element._child) {\r\n element._host.removeChild(element._child);\r\n }\r\n\r\n element._host = host;\r\n\r\n if (element._host && element._child) {\r\n element._host.appendChild(element._child);\r\n }\r\n }\r\n\r\n public static showInBounds(element: NativeControlHostTopLevelAttachment, x: number, y: number, width: number, height: number): void {\r\n if (element._child) {\r\n element._child.style.top = `${y}px`;\r\n element._child.style.left = `${x}px`;\r\n element._child.style.width = `${width}px`;\r\n element._child.style.height = `${height}px`;\r\n element._child.style.display = \"block\";\r\n }\r\n }\r\n\r\n public static hideWithSize(element: NativeControlHostTopLevelAttachment, width: number, height: number): void {\r\n if (element._child) {\r\n element._child.style.width = `${width}px`;\r\n element._child.style.height = `${height}px`;\r\n element._child.style.display = \"none\";\r\n }\r\n }\r\n\r\n public static releaseChild(element: NativeControlHostTopLevelAttachment): void {\r\n if (element._child) {\r\n element._child = undefined;\r\n }\r\n }\r\n}\r\n", "export class NavigationHelper {\r\n public static addBackHandler(backHandlerCallback: () => Boolean) {\r\n history.pushState(null, \"\", window.location.href);\r\n window.onpopstate = () => {\r\n const handled = backHandlerCallback();\r\n\r\n if (!handled) {\r\n history.back();\r\n } else {\r\n history.forward();\r\n }\r\n };\r\n }\r\n}\r\n", "export class GeneralHelpers {\r\n public static itemsArrayAt(instance: any, key: any): any[] {\r\n const items = instance[key];\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n const retItems = [];\r\n for (let i = 0; i < items.length; i++) {\r\n retItems[i] = items[i];\r\n }\r\n return retItems;\r\n }\r\n\r\n public static itemAt(instance: any, key: any): any {\r\n const item = instance[key];\r\n return item;\r\n }\r\n\r\n public static callMethod(instance: any, name: string /*, args */): any {\r\n const args = Array.prototype.slice.call(arguments, 2);\r\n return instance[name].apply(instance, args);\r\n }\r\n}\r\n", "export class TimerHelper {\r\n public static runAnimationFrames(renderFrameCallback: (timestamp: number) => boolean): void {\r\n function render(time: number) {\r\n const next = renderFrameCallback(time);\r\n if (next) {\r\n window.requestAnimationFrame(render);\r\n }\r\n }\r\n\r\n window.requestAnimationFrame(render);\r\n }\r\n}\r\n", "export type AvaloniaRenderingContext = RenderingContext;\r\n\r\nexport enum BrowserRenderingMode {\r\n Software2D = 1,\r\n WebGL1,\r\n WebGL2\r\n}\r\n\r\nexport abstract class CanvasSurface {\r\n constructor(\r\n public context: AvaloniaRenderingContext,\r\n public mode: BrowserRenderingMode) {\r\n }\r\n\r\n abstract destroy(): void;\r\n abstract ensureSize(): void;\r\n abstract onSizeChanged(sizeChangedCallback: (width: number, height: number, dpr: number) => void): void;\r\n}\r\n", "type ResizeObserverWithCallbacks = {\r\n callbacks: Map void)>;\r\n} & ResizeObserver;\r\n\r\nexport class ResizeHandler {\r\n private static resizeObserver?: ResizeObserverWithCallbacks;\r\n\r\n public static observeSize(element: HTMLElement, callback: (width: number, height: number, dpr: number) => void) : (() => void) {\r\n if (!this.resizeObserver) {\r\n this.resizeObserver = new ResizeObserver(this.onResize) as ResizeObserverWithCallbacks;\r\n this.resizeObserver.callbacks = new Map void)>();\r\n }\r\n\r\n this.resizeObserver.callbacks.set(element, callback);\r\n this.resizeObserver.observe(element, { box: \"content-box\" });\r\n\r\n return () => {\r\n this.resizeObserver?.callbacks.delete(element);\r\n this.resizeObserver?.unobserve(element);\r\n };\r\n }\r\n\r\n private static onResize(entries: ResizeObserverEntry[], observer: ResizeObserver) {\r\n for (const entry of entries) {\r\n const callback = (observer as ResizeObserverWithCallbacks).callbacks.get(entry.target);\r\n if (!callback) {\r\n continue;\r\n }\r\n\r\n const trueDpr = window.devicePixelRatio;\r\n let width;\r\n let height;\r\n let dpr = trueDpr;\r\n if (entry.devicePixelContentBoxSize) {\r\n // NOTE: Only this path gives the correct answer\r\n // The other paths are imperfect fallbacks\r\n // for browsers that don't provide anyway to do this\r\n width = entry.devicePixelContentBoxSize[0].inlineSize;\r\n height = entry.devicePixelContentBoxSize[0].blockSize;\r\n dpr = 1; // it's already in width and height\r\n } else if (entry.contentBoxSize) {\r\n if (entry.contentBoxSize[0]) {\r\n width = entry.contentBoxSize[0].inlineSize;\r\n height = entry.contentBoxSize[0].blockSize;\r\n } else {\r\n width = (entry.contentBoxSize as any).inlineSize;\r\n height = (entry.contentBoxSize as any).blockSize;\r\n }\r\n } else {\r\n width = entry.contentRect.width;\r\n height = entry.contentRect.height;\r\n }\r\n const displayWidth = Math.round(width * dpr);\r\n const displayHeight = Math.round(height * dpr);\r\n callback(displayWidth, displayHeight, trueDpr);\r\n }\r\n }\r\n}\r\n", "import { ResizeHandler } from \"./resizeHandler\";\r\nimport { CanvasSurface, AvaloniaRenderingContext, BrowserRenderingMode } from \"./surfaceBase\";\r\n\r\nexport abstract class HtmlCanvasSurfaceBase extends CanvasSurface {\r\n private sizeParams?: [number, number, number];\r\n private sizeChangedCallback?: (width: number, height: number, dpr: number) => void;\r\n\r\n constructor(\r\n public canvas: HTMLCanvasElement,\r\n public context: AvaloniaRenderingContext,\r\n public mode: BrowserRenderingMode) {\r\n super(context, mode);\r\n\r\n // No need to ubsubsribe, canvas never leaves JS world, it should be GC'ed with all callbacks.\r\n ResizeHandler.observeSize(canvas, (width, height, dpr) => {\r\n this.sizeParams = [width, height, dpr];\r\n\r\n if (this.sizeChangedCallback) {\r\n this.sizeChangedCallback(width, height, dpr);\r\n }\r\n });\r\n }\r\n\r\n public destroy(): void {\r\n delete this.sizeChangedCallback;\r\n }\r\n\r\n public onSizeChanged(sizeChangedCallback: (width: number, height: number, dpr: number) => void) {\r\n if (this.sizeChangedCallback) { throw new Error(\"For simplicity, we don't support multiple size changed callbacks per surface, not needed yet.\"); }\r\n this.sizeChangedCallback = sizeChangedCallback;\r\n }\r\n\r\n public ensureSize() {\r\n if (this.sizeParams) {\r\n this.canvas.width = this.sizeParams[0];\r\n this.canvas.height = this.sizeParams[1];\r\n delete this.sizeParams;\r\n }\r\n }\r\n}\r\n", "import { BrowserRenderingMode } from \"./surfaceBase\";\r\nimport { HtmlCanvasSurfaceBase } from \"./htmlSurfaceBase\";\r\nimport { RuntimeAPI } from \"../../../types/dotnet\";\r\nimport { isSharedArrayBuffer } from \"../stream\";\r\n\r\nexport class SoftwareSurface extends HtmlCanvasSurfaceBase {\r\n private readonly runtime: RuntimeAPI | undefined;\r\n\r\n constructor(public canvas: HTMLCanvasElement) {\r\n const context = canvas.getContext(\"2d\", {\r\n alpha: true\r\n });\r\n if (!context) {\r\n throw new Error(\"HTMLCanvasElement.getContext(2d) returned null.\");\r\n }\r\n super(canvas, context, BrowserRenderingMode.Software2D);\r\n\r\n this.runtime = globalThis.getDotnetRuntime(0);\r\n }\r\n\r\n public putPixelData(span: any /* IMemoryView */, width: number, height: number): void {\r\n this.ensureSize();\r\n\r\n const heap8 = this.runtime?.localHeapViewU8();\r\n\r\n let clampedBuffer: Uint8ClampedArray;\r\n if (span._pointer > 0 && span._length > 0 && heap8 && !isSharedArrayBuffer(heap8.buffer)) {\r\n // Attempt to use undocumented access to the HEAP8 directly\r\n // Note, SharedArrayBuffer cannot be used with ImageData (when WasmEnableThreads = true).\r\n clampedBuffer = new Uint8ClampedArray(heap8.buffer, span._pointer, span._length);\r\n } else {\r\n // Or fallback to the normal API that does multiple array copies.\r\n const copy = new Uint8Array(span.byteLength);\r\n span.copyTo(copy);\r\n clampedBuffer = new Uint8ClampedArray(copy.buffer);\r\n }\r\n\r\n const imageData = new ImageData(clampedBuffer, width, height);\r\n (this.context as CanvasRenderingContext2D).putImageData(imageData, 0, 0);\r\n }\r\n}\r\n", "import { BrowserRenderingMode } from \"./surfaceBase\";\r\nimport { HtmlCanvasSurfaceBase } from \"./htmlSurfaceBase\";\r\n\r\nfunction getGL(): any {\r\n const self = globalThis as any;\r\n const module = self.Module ?? self.getDotnetRuntime(0)?.Module;\r\n return module?.GL ?? self.AvaloniaGL ?? self.SkiaSharpGL;\r\n}\r\n\r\nexport class WebGlSurface extends HtmlCanvasSurfaceBase {\r\n public contextHandle?: number;\r\n public fboId?: number;\r\n public stencil?: number;\r\n public sample?: number;\r\n public depth?: number;\r\n\r\n constructor(public canvas: HTMLCanvasElement, mode: BrowserRenderingMode.WebGL1 | BrowserRenderingMode.WebGL2) {\r\n // Skia only understands WebGL context wrapped in Emscripten.\r\n const gl = getGL();\r\n if (!gl) {\r\n throw new Error(\"Module.GL object wasn't initialized, WebGL can't be used.\");\r\n }\r\n\r\n const modeStr = mode === BrowserRenderingMode.WebGL1 ? \"webgl\" : \"webgl2\";\r\n const attrs: WebGLContextAttributes | any =\r\n {\r\n alpha: true,\r\n depth: true,\r\n stencil: true,\r\n antialias: false,\r\n premultipliedAlpha: true,\r\n preserveDrawingBuffer: false,\r\n // only supported on older browsers, which is perfect as we want to fallback to 2d there.\r\n failIfMajorPerformanceCaveat: true,\r\n // attrs used by Emscripten:\r\n majorVersion: mode === BrowserRenderingMode.WebGL1 ? 1 : 2,\r\n minorVersion: 0,\r\n enableExtensionsByDefault: 1,\r\n explicitSwapControl: 0\r\n };\r\n const context = canvas.getContext(modeStr, attrs) as WebGLRenderingContext;\r\n if (!context) {\r\n throw new Error(`HTMLCanvasElement.getContext(${modeStr}) returned null.`);\r\n }\r\n\r\n const handle = gl.registerContext(context, attrs);\r\n gl.makeContextCurrent(handle);\r\n (context as any).gl_handle = handle;\r\n\r\n super(canvas, context, BrowserRenderingMode.Software2D);\r\n\r\n this.contextHandle = handle;\r\n this.fboId = context.getParameter(context.FRAMEBUFFER_BINDING)?.id ?? 0;\r\n this.stencil = context.getParameter(context.STENCIL_BITS);\r\n this.sample = context.getParameter(context.SAMPLES);\r\n this.depth = context.getParameter(context.DEPTH_BITS);\r\n }\r\n}\r\n", "import { AvaloniaDOM } from \"../dom\";\r\nimport { SoftwareSurface } from \"./softwareSurface\";\r\nimport { BrowserRenderingMode, CanvasSurface } from \"./surfaceBase\";\r\nimport { WebGlSurface } from \"./webGlSurface\";\r\n\r\nexport class CanvasFactory {\r\n public static create(container: HTMLElement, mode: BrowserRenderingMode): CanvasSurface {\r\n if (!container) {\r\n throw new Error(\"No html container was provided.\");\r\n }\r\n\r\n const canvas = AvaloniaDOM.createAvaloniaCanvas(container);\r\n AvaloniaDOM.attachCanvas(container, canvas);\r\n\r\n try {\r\n if (mode === BrowserRenderingMode.Software2D) {\r\n return new SoftwareSurface(canvas);\r\n } else if (mode === BrowserRenderingMode.WebGL1 || mode === BrowserRenderingMode.WebGL2) {\r\n return new WebGlSurface(canvas, mode);\r\n } else {\r\n throw new Error(`Unsupported rendering mode: ${BrowserRenderingMode[mode]}`);\r\n }\r\n } catch (ex) {\r\n AvaloniaDOM.detachCanvas(container, canvas);\r\n throw ex;\r\n }\r\n }\r\n\r\n public static destroy(surface: CanvasSurface) {\r\n surface.destroy();\r\n }\r\n\r\n public static onSizeChanged(surface: CanvasSurface, sizeChangedCallback: (width: number, height: number, dpr: number) => void) {\r\n surface.onSizeChanged(sizeChangedCallback);\r\n }\r\n\r\n public static ensureSize(surface: CanvasSurface): void {\r\n surface.ensureSize();\r\n }\r\n\r\n public static putPixelData(surface: SoftwareSurface, span: any /* IMemoryView */, width: number, height: number): void {\r\n surface.putPixelData(span, width, height);\r\n }\r\n}\r\n", "import { InputHelper } from \"./avalonia/input\";\r\nimport { AvaloniaDOM } from \"./avalonia/dom\";\r\nimport { Caniuse } from \"./avalonia/caniuse\";\r\nimport { StreamHelper } from \"./avalonia/stream\";\r\nimport { NativeControlHost } from \"./avalonia/nativeControlHost\";\r\nimport { NavigationHelper } from \"./avalonia/navigationHelper\";\r\nimport { GeneralHelpers } from \"./avalonia/generalHelpers\";\r\nimport { TimerHelper } from \"./avalonia/timer\";\r\nimport { CanvasFactory } from \"./avalonia/surfaces/surfaceFactory\";\r\n\r\nasync function registerServiceWorker(path: string, scope: string | undefined) {\r\n if (\"serviceWorker\" in navigator) {\r\n await globalThis.navigator.serviceWorker.register(path, scope ? { scope } : undefined);\r\n }\r\n}\r\n\r\nexport {\r\n Caniuse,\r\n CanvasFactory,\r\n InputHelper,\r\n AvaloniaDOM,\r\n StreamHelper,\r\n NativeControlHost,\r\n NavigationHelper,\r\n GeneralHelpers,\r\n TimerHelper,\r\n registerServiceWorker\r\n};\r\n"],
+ "mappings": "AACO,IAAMA,EAAN,KAAkB,CACrB,OAAc,oBACVC,EACAC,EACAC,EACF,CANN,IAAAC,EAAAC,EAOQ,GAAI,CAACC,EACD,MAAM,IAAI,MACN,gFACJ,EAGJ,IAAMC,GAAQH,EAAAD,GAAA,YAAAA,EAAS,QAAT,KAAAC,EAAkB,GAChC,GAAIG,EAAO,CACP,IAAMC,EAAK,SAAS,cAChB,2CACJ,EACIA,KAAIH,EAAAG,EAAG,aAAH,MAAAH,EAAe,YAAYG,GACvC,CAGA,IAAMC,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,GAAK,2CACT,SAAS,KAAK,YAAYA,CAAG,EAE7B,IAAMC,EAAQD,EAAI,MACZE,EAAW,OAAO,iBAClB,OAAO,iBAAiBV,CAAO,EAC7BA,EAAgB,aAClBW,EAAUX,EAAQ,WAAa,QAGrCS,EAAM,WAAa,WACdE,IAASF,EAAM,SAAW,cAG/BA,EAAM,SAAW,WACZH,IAAOG,EAAM,WAAa,UAG/BG,EAAW,QAASC,GAAiB,CACjC,GAAIF,GAAWE,IAAS,aAEpB,GAAIH,EAAS,YAAc,aAAc,CACrC,IAAMI,EAAS,SAASJ,EAAS,MAAM,EACjCK,EACF,SAASL,EAAS,UAAU,EAC5B,SAASA,EAAS,aAAa,EAC/B,SAASA,EAAS,cAAc,EAChC,SAASA,EAAS,iBAAiB,EACjCM,EAAeD,EAAc,SAASL,EAAS,UAAU,EAC3DI,EAASE,EACTP,EAAM,WAAa,GAAGK,EAASC,MACxBD,IAAWE,EAClBP,EAAM,WAAaC,EAAS,WAE5BD,EAAM,WAAa,GAE3B,MACIA,EAAM,WAAaC,EAAS,YAG/BD,EAAcI,GAASH,EAAiBG,EAEjD,CAAC,EAEGI,EAEIjB,EAAQ,aAAe,SAASU,EAAS,MAAM,IAC/CD,EAAM,UAAY,UAGtBA,EAAM,SAAW,SAGrBD,EAAI,YAAcR,EAAQ,MAAM,UAAU,EAAGC,CAAQ,EAGjDU,IAASH,EAAI,YAAcA,EAAI,YAAY,QAAQ,MAAO,MAAQ,GAEtE,IAAMU,EAAO,SAAS,cAAc,MAAM,EAM1CA,EAAK,YAAclB,EAAQ,MAAM,UAAUC,CAAQ,GAAK,IACxDO,EAAI,YAAYU,CAAI,EAEpB,IAAMC,EAAc,CAChB,IAAKD,EAAK,UAAY,SAASR,EAAS,cAAc,EACtD,KAAMQ,EAAK,WAAa,SAASR,EAAS,eAAe,EACzD,OAAQ,SAASA,EAAS,UAAU,CACxC,EAEA,OAAIJ,EACAY,EAAK,MAAM,gBAAkB,OAE7B,SAAS,KAAK,YAAYV,CAAG,EAG1BW,CACX,CACJ,EAEMP,EAAa,CACf,YACA,YACA,QACA,SACA,YACA,YAEA,iBACA,mBACA,oBACA,kBACA,cAEA,aACA,eACA,gBACA,cAGA,YACA,cACA,aACA,cACA,WACA,iBACA,aACA,aAEA,YACA,gBACA,aACA,iBAEA,gBACA,cAEA,UACA,YACJ,EAEMP,EAAY,OAAO,QAAW,YAC9BY,EAAYZ,GAAc,OAAe,iBAAmB,KC9G3D,IAAMe,EAAN,KAAkB,CAKrB,OAAc,8BAA+B,CACrC,KAAK,iBAAmB,IAI5B,WAAW,iBAAiB,QAAUC,GAAc,CAC5C,KAAK,iBAAmB,GACxB,KAAK,iBAAiBA,EAAK,cAAc,QAAQ,MAAM,CAAC,CAEhE,CAAC,EACD,KAAK,eAAiB,EAC1B,CAEA,aAAoB,mBAAqC,CACrD,GAAI,WAAW,UAAU,UAAU,SAC/B,OAAO,MAAM,WAAW,UAAU,UAAU,SAAS,EAErD,GAAI,CACA,OAAO,MAAM,IAAI,QAAa,CAACC,EAASC,IAAW,CAC/C,KAAK,eAAiB,EACtB,KAAK,iBAAmBD,EACxB,KAAK,gBAAkBC,CAC3B,CAAC,CACL,QAAE,CACE,KAAK,eAAiB,EACtB,KAAK,iBAAmB,KACxB,KAAK,gBAAkB,IAC3B,CAER,CAEA,OAAc,mBACVC,EACAC,EACAC,EAA0E,CAC1E,IAAMC,EAAkBN,GAAwB,CACxCI,EAAgBJ,EAAK,KAAMA,EAAK,IAAK,KAAK,aAAaA,CAAI,CAAC,GACxD,KAAK,iBAAmB,GACxBA,EAAK,eAAe,CAGhC,EACAG,EAAQ,iBAAiB,UAAWG,CAAc,EAElD,IAAMC,EAAgBP,GAAwB,CACtCK,EAAcL,EAAK,KAAMA,EAAK,IAAK,KAAK,aAAaA,CAAI,CAAC,GAC1DA,EAAK,eAAe,EAEpB,KAAK,iBACL,KAAK,gBAAgB,CAE7B,EAEA,OAAAG,EAAQ,iBAAiB,QAASI,CAAY,EAEvC,IAAM,CACTJ,EAAQ,oBAAoB,UAAWG,CAAc,EACrDH,EAAQ,oBAAoB,QAASI,CAAY,CACrD,CACJ,CAEA,OAAc,oBACVJ,EACAK,EACAC,EACAC,EACAC,EAA6D,CAC7D,IAAMC,EAA2BZ,GAA2B,CACpDS,EAAyBT,CAAI,GAC7BA,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,mBAAoBS,CAAuB,EAEpE,IAAMC,EAAsBb,GAAqB,CAC7C,IAAMc,EAASd,EAAK,gBAAgB,EAChCe,EAAQ,GACRC,EAAM,GACNF,EAAO,OAAS,IAChBC,EAAQD,EAAO,GAAG,YAClBE,EAAMF,EAAO,GAAG,WAGhBd,EAAK,YAAc,0BACnBe,EAAQ,EACRC,EAAMD,EAAQ,GAEdP,EAAoBR,EAAMe,EAAOC,CAAG,GACpChB,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,cAAeU,CAAkB,EAE1D,IAAMI,EAA4BjB,GAA2B,CACrDU,EAA0BV,CAAI,GAC9BA,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,oBAAqBc,CAAwB,EAEtE,IAAMC,EAAyBlB,GAA2B,CAClDW,EAAuBX,CAAI,GAC3BA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,iBAAkBe,CAAqB,EAEzD,IAAM,CACTf,EAAQ,oBAAoB,mBAAoBS,CAAuB,EACvET,EAAQ,oBAAoB,oBAAqBc,CAAwB,EACzEd,EAAQ,oBAAoB,iBAAkBe,CAAqB,CACvE,CACJ,CAEA,OAAc,uBACVf,EACAgB,EACAC,EACAC,EACAC,EACAC,EACF,CACE,IAAMC,EAAsBxB,GAAuB,CAC/CmB,EAAoBnB,CAAI,EACxBA,EAAK,eAAe,CACxB,EAEMyB,EAAsBzB,GAAuB,CAC/CoB,EAAoBpB,CAAI,EACxBA,EAAK,eAAe,CACxB,EAEM0B,EAAoB1B,GAAuB,CAC7CqB,EAAkBrB,CAAI,EACtBA,EAAK,eAAe,CACxB,EAEM2B,EAAwB3B,GAAuB,CACjDsB,EAAsBtB,CAAI,EAC1BA,EAAK,eAAe,CACxB,EAEM4B,EAAgB5B,GAAqB,CACvCuB,EAAcvB,CAAI,EAClBA,EAAK,eAAe,CACxB,EAEA,OAAAG,EAAQ,iBAAiB,cAAeqB,CAAkB,EAC1DrB,EAAQ,iBAAiB,cAAesB,CAAkB,EAC1DtB,EAAQ,iBAAiB,YAAauB,CAAgB,EACtDvB,EAAQ,iBAAiB,QAASyB,CAAY,EAC9CzB,EAAQ,iBAAiB,gBAAiBwB,CAAoB,EAEvD,IAAM,CACTxB,EAAQ,oBAAoB,cAAeqB,CAAkB,EAC7DrB,EAAQ,oBAAoB,cAAesB,CAAkB,EAC7DtB,EAAQ,oBAAoB,YAAauB,CAAgB,EACzDvB,EAAQ,oBAAoB,gBAAiBwB,CAAoB,EACjExB,EAAQ,oBAAoB,QAASyB,CAAY,CACrD,CACJ,CAEA,OAAc,qBACVzB,EACA0B,EACF,CACE,IAAMC,EAAgB9B,GAAgB,CAC9B6B,EAAe7B,EAAa,KAAK,GACjCA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,QAAS2B,CAAY,EAEvC,IAAM,CACT3B,EAAQ,oBAAoB,QAAS2B,CAAY,CACrD,CACJ,CAEA,OAAc,oBACV3B,EACA4B,EACF,CACE,IAAMC,EAAehC,GAAgB,CAC7B+B,EAAU/B,CAAW,GACrBA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,WAAY6B,CAAW,EAChD7B,EAAQ,iBAAiB,YAAa6B,CAAW,EACjD7B,EAAQ,iBAAiB,YAAa6B,CAAW,EACjD7B,EAAQ,iBAAiB,OAAQ6B,CAAW,EAErC,IAAM,CACT7B,EAAQ,oBAAoB,WAAY6B,CAAW,EACnD7B,EAAQ,oBAAoB,YAAa6B,CAAW,EACpD7B,EAAQ,oBAAoB,YAAa6B,CAAW,EACpD7B,EAAQ,oBAAoB,OAAQ6B,CAAW,CACnD,CACJ,CAEA,OAAc,mBAAmBC,EAA4C,CACzE,OAAOA,EAAa,mBAAmB,CAC3C,CAEA,OAAc,gCACV9B,EACA+B,EAAiC,CAC7B,oBAAqB,WAEpB,UAAkB,gBAAgB,iBAAiB,iBAAmBC,GAAe,CAClF,IAAMC,EAAcjC,EAAQ,sBAAsB,EAC5CkC,EAAeF,EAAM,OAAO,aAClCD,EAAQ,CACJ,EAAGG,EAAa,EAAID,EAAY,EAChC,EAAGC,EAAa,EAAID,EAAY,EAChC,MAAOC,EAAa,MACpB,OAAQA,EAAa,MACzB,CAAC,CACL,CAAC,CAET,CAEA,OAAc,0BACVH,EAA4C,CAC5C,gBAAS,iBAAiB,mBAAoB,IAAM,CAChDA,EAAQ,SAAS,kBAAoB,SAAS,CAClD,CAAC,EACM,SAAS,kBAAoB,SACxC,CAEA,OAAc,WAAWI,EAAgC,CACrDA,EAAa,MAAQ,EACzB,CAEA,OAAc,aAAaA,EAA2B,CAClDA,EAAa,MAAM,CACvB,CAEA,OAAc,UAAUA,EAAgCC,EAAc,CAC9DA,IAAS,UACTD,EAAa,MAAM,eAAe,QAAQ,EAE1CA,EAAa,MAAM,OAASC,CAEpC,CAEA,OAAc,UAAUD,EAAgCE,EAAWC,EAAWC,EAAoBC,EAAqBC,EAAe,CAClIN,EAAa,MAAM,KAAQE,EAAG,QAAQ,CAAC,EAAI,KAC3CF,EAAa,MAAM,IAAOG,EAAG,QAAQ,CAAC,EAAI,KAE1C,GAAM,CAAE,KAAAI,EAAM,IAAAC,CAAI,EAAIC,EAAY,oBAAoBT,EAAcM,CAAK,EAEzEN,EAAa,MAAM,MAAQE,EAAIK,GAAM,QAAQ,CAAC,EAAI,KAClDP,EAAa,MAAM,KAAOG,EAAIK,GAAK,QAAQ,CAAC,EAAI,IACpD,CAEA,OAAc,KAAKR,EAAgC,CAC/CA,EAAa,MAAM,QAAU,MACjC,CAEA,OAAc,KAAKA,EAAgC,CAC/CA,EAAa,MAAM,QAAU,OACjC,CAEA,OAAc,mBAAmBA,EAAgCU,EAAcjC,EAAeC,EAAa,CACnG,CAACsB,IAILA,EAAa,MAAQU,EACrBV,EAAa,kBAAkBvB,EAAOC,CAAG,EACzCsB,EAAa,MAAM,MAAQ,OAC3BA,EAAa,MAAM,MAAQ,GAAGA,EAAa,gBAC/C,CAEA,OAAe,aAAatC,EAA6B,CACrD,IAAIiD,EAAY,EAEhB,OAAIjD,EAAK,UAAWiD,GAAa,GAC7BjD,EAAK,SAAUiD,GAAa,GAC5BjD,EAAK,WAAYiD,GAAa,GAC9BjD,EAAK,UAAWiD,GAAa,GAE1BA,EAAU,SAAS,CAC9B,CAEA,OAAc,kBAAkBC,EAAoCC,EAAyB,CACzFD,EAAiB,kBAAkBC,CAAS,CAChD,CAEA,OAAc,sBAAsBD,EAAoCC,EAAyB,CACzFD,EAAiB,kBAAkBC,CAAS,GAC5CD,EAAiB,sBAAsBC,CAAS,CAExD,CACJ,EA5SapD,EACF,eAAiC,ECtCrC,IAAMqD,EAAN,KAAkB,CACrB,OAAc,SAASC,EAAsBC,EAAyB,CAClED,EAAQ,UAAU,IAAIC,CAAS,CACnC,CAEA,OAAO,gBAAgBC,EAAqE,CACxF,GAAI,WAAW,aAAe,OAC1B,MAAO,GAGX,IAAMC,EAAkB,WAAW,WAAW,8BAA8B,EACtEC,EAAuB,WAAW,WAAW,0BAA0B,EAE7E,OAAAD,EAAgB,iBAAiB,SAAWE,GAA8B,CACtEH,EAASG,EAAK,QAASD,EAAqB,OAAO,CACvD,CAAC,EACDA,EAAqB,iBAAiB,SAAWC,GAA8B,CAC3EH,EAASC,EAAgB,QAASE,EAAK,OAAO,CAClD,CAAC,EAEM,CACH,WAAYF,EAAgB,QAC5B,eAAgBC,EAAqB,OACzC,CACJ,CAEA,OAAO,2BAA2BH,EAAmBK,EAAsC,CACvF,IAAMC,GAAYD,GAAA,KAAAA,EAAU,WAAW,UAAU,uBAAuBL,CAAS,EACjF,OAAOM,EAAWA,EAAS,GAAK,IACpC,CAEA,OAAO,qBAAqBC,EAAsC,CAhCtE,IAAAC,EAiCQ,IAAMC,GAAcD,EAAAD,EAAK,aAAa,kBAAkB,IAApC,KAAAC,EAAyC,OAEvDE,EAAS,SAAS,cAAc,QAAQ,EAC9C,OAAAA,EAAO,GAAK,SAASD,IACrBC,EAAO,UAAU,IAAI,iBAAiB,EACtCA,EAAO,MAAM,MAAQ,OACrBA,EAAO,MAAM,OAAS,OACtBA,EAAO,MAAM,SAAW,WAEjBA,CACX,CAEA,OAAO,aAAaH,EAAmBG,EAAiC,CACpEH,EAAK,QAAQG,CAAM,CACvB,CAEA,OAAO,aAAaH,EAAmBG,EAAiC,CACpEH,EAAK,YAAYG,CAAM,CAC3B,CAEA,OAAO,mBAAmBH,EAAmB,CACzC,IAAME,EAAc,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,WAAY,EAAE,EAAE,OAAO,EAAG,EAAE,EAGnFF,EAAK,UAAU,IAAI,oBAAoB,EACvCA,EAAK,SAAW,EAChBA,EAAK,aAAa,mBAAoBE,CAAW,EACjDF,EAAK,cAAgB,UAAY,CAAE,MAAO,EAAO,EACjDA,EAAK,MAAM,SAAW,SACtBA,EAAK,MAAM,YAAc,OAKzB,IAAMI,EAAa,SAAS,cAAc,KAAK,EAC/CA,EAAW,GAAK,aAAaF,IAC7BE,EAAW,UAAU,IAAI,sBAAsB,EAC/CA,EAAW,MAAM,KAAO,MACxBA,EAAW,MAAM,IAAM,MACvBA,EAAW,MAAM,MAAQ,OACzBA,EAAW,MAAM,OAAS,OAC1BA,EAAW,MAAM,SAAW,WAG5B,IAAMC,EAAe,SAAS,cAAc,OAAO,EACnD,OAAAA,EAAa,GAAK,eAAeH,IACjCG,EAAa,UAAU,IAAI,wBAAwB,EACnDA,EAAa,eAAiB,OAC9BA,EAAa,KAAO,OACpBA,EAAa,WAAa,GAC1BA,EAAa,MAAM,QAAU,IAC7BA,EAAa,MAAM,OAAS,IAC5BA,EAAa,MAAM,YAAc,IACjCA,EAAa,MAAM,SAAW,WAC9BA,EAAa,MAAM,SAAW,SAC9BA,EAAa,MAAM,YAAc,SACjCA,EAAa,MAAM,QAAU,OAC7BA,EAAa,MAAM,WAAa,cAChCA,EAAa,MAAM,MAAQ,cAC3BA,EAAa,MAAM,QAAU,OAC7BA,EAAa,MAAM,OAAS,OAC5BA,EAAa,MAAM,OAAS,KAC5BA,EAAa,QAAU,UAAY,CAAE,MAAO,EAAO,EACnDA,EAAa,OAAS,UAAY,CAAE,MAAO,EAAO,EAClDA,EAAa,MAAQ,UAAY,CAAE,MAAO,EAAO,EAEjDL,EAAK,QAAQK,CAAY,EACzBL,EAAK,QAAQI,CAAU,EAEhB,CACH,KAAAJ,EACA,WAAAI,EACA,aAAAC,CACJ,CACJ,CAEA,OAAc,cAAwB,CAClC,OAAO,SAAS,mBAAqB,IACzC,CAEA,aAAoB,cAAcC,EAAuB,CACjDA,EAEA,MADY,SAAS,gBACX,kBAAkB,EAE5B,MAAM,SAAS,eAAe,CAEtC,CAEA,OAAc,qBAA4B,CACtC,SAAS,gBAAgB,MAAM,YAAY,WAAY,0BAA0B,EACjF,SAAS,gBAAgB,MAAM,YAAY,WAAY,4BAA4B,EACnF,SAAS,gBAAgB,MAAM,YAAY,WAAY,6BAA6B,EACpF,SAAS,gBAAgB,MAAM,YAAY,WAAY,2BAA2B,CACtF,CAEA,OAAc,oBAA+B,CACzC,IAAMC,EAAM,WAAW,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,UAAU,CAAC,EACxFC,EAAS,WAAW,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,UAAU,CAAC,EAC3FC,EAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,UAAU,CAAC,EACzFC,EAAQ,WAAW,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,UAAU,CAAC,EAEhG,MAAO,CAACD,EAAMF,EAAKC,EAAQE,CAAK,CACpC,CACJ,ECzIO,IAAMC,EAAN,KAAc,CACjB,OAAc,qBAA+B,CACzC,MAAO,uBAAwB,UACnC,CAEA,OAAc,UAAoB,CALtC,IAAAC,EAMQ,IAAMC,GAAiBD,EAAA,WAAW,YAAX,YAAAA,EAA8B,cACrD,GAAIC,EACA,OAAOA,EAAc,OAGzB,IAAMC,EAAY,UAAU,UACtBC,EAAS,2TACTC,EAAS,8+CACf,OAAOD,EAAO,KAAKD,CAAS,GAAKE,EAAO,KAAKF,EAAU,OAAO,EAAG,CAAC,CAAC,CACvE,CAEA,OAAc,MAAgB,CAC1B,OAAO,UAAU,UAAU,SAAS,SAAS,CACjD,CACJ,EClBA,IAAMG,EAA2B,OAAO,mBAAsB,YACvD,SAASC,EAAoBC,EAA0C,CAI1E,OAAOF,GAA4BE,EAAO,OAAO,eAAiB,mBACtE,CAEO,IAAMC,EAAN,KAAmB,CACtB,aAAoB,KAAKC,EAAsCC,EAAkB,CAC7E,OAAO,MAAMD,EAAO,KAAKC,CAAQ,CACrC,CAEA,aAAoB,SAASD,EAAsCE,EAAc,CAC7E,OAAO,MAAMF,EAAO,SAASE,CAAI,CACrC,CAEA,aAAoB,MAAMF,EAAsC,CAC5D,OAAO,MAAMA,EAAO,MAAM,CAC9B,CAEA,aAAoB,MAAMA,EAAsCG,EAAWC,EAAgBC,EAAe,CAvB9G,IAAAC,EAwBQ,IAAMC,GAAQD,EAAA,WAAW,iBAAiB,CAAC,IAA7B,YAAAA,EAAgC,kBAE1CR,EACJ,GAAIK,EAAK,SAAW,GAAKA,EAAK,QAAU,GAAKI,GAAS,CAACV,EAAoBU,EAAM,MAAM,EAGnFT,EAAS,IAAI,WAAWS,EAAM,OAAQJ,EAAK,SAAqBC,EAAQC,CAAK,MAC1E,CAEH,IAAMG,EAAO,IAAI,WAAWH,CAAK,EACjCF,EAAK,OAAOK,EAAMJ,CAAM,EACxBN,EAASK,CACb,CAEA,OAAO,MAAMH,EAAO,MAAMF,CAAM,CACpC,CAEA,OAAc,WAAWE,EAAc,CACnC,OAAOA,EAAO,IAClB,CAEA,aAAoB,iBAAiBA,EAAcI,EAAgBC,EAAe,CAC9E,IAAMP,EAAS,MAAME,EAAO,MAAMI,EAAQA,EAASC,CAAK,EAAE,YAAY,EACtE,OAAO,IAAI,WAAWP,CAAM,CAChC,CAEA,OAAc,aAAaA,EAAgC,CACvD,OAAOA,CACX,CACJ,ECrDA,IAAMW,EAAN,KAA0C,CAG1C,EAEaC,EAAN,KAAwB,CAC3B,OAAc,mBAAmBC,EAAmC,CAChE,OAAO,SAAS,cAAc,KAAK,CACvC,CAEA,OAAc,kBAAwD,CAClE,OAAO,IAAIF,CACf,CAEA,OAAc,0BAA0BG,EAA8CC,EAA0B,CAC5GD,EAAQ,OAASC,EACjBD,EAAQ,OAAO,MAAM,SAAW,UACpC,CAEA,OAAc,SAASA,EAA8CE,EAA0B,CACvFF,EAAQ,OAASA,EAAQ,QACzBA,EAAQ,MAAM,YAAYA,EAAQ,MAAM,EAG5CA,EAAQ,MAAQE,EAEZF,EAAQ,OAASA,EAAQ,QACzBA,EAAQ,MAAM,YAAYA,EAAQ,MAAM,CAEhD,CAEA,OAAc,aAAaA,EAA8CG,EAAWC,EAAWC,EAAeC,EAAsB,CAC5HN,EAAQ,SACRA,EAAQ,OAAO,MAAM,IAAM,GAAGI,MAC9BJ,EAAQ,OAAO,MAAM,KAAO,GAAGG,MAC/BH,EAAQ,OAAO,MAAM,MAAQ,GAAGK,MAChCL,EAAQ,OAAO,MAAM,OAAS,GAAGM,MACjCN,EAAQ,OAAO,MAAM,QAAU,QAEvC,CAEA,OAAc,aAAaA,EAA8CK,EAAeC,EAAsB,CACtGN,EAAQ,SACRA,EAAQ,OAAO,MAAM,MAAQ,GAAGK,MAChCL,EAAQ,OAAO,MAAM,OAAS,GAAGM,MACjCN,EAAQ,OAAO,MAAM,QAAU,OAEvC,CAEA,OAAc,aAAaA,EAAoD,CACvEA,EAAQ,SACRA,EAAQ,OAAS,OAEzB,CACJ,ECtDO,IAAMO,EAAN,KAAuB,CAC1B,OAAc,eAAeC,EAAoC,CAC7D,QAAQ,UAAU,KAAM,GAAI,OAAO,SAAS,IAAI,EAChD,OAAO,WAAa,IAAM,CACNA,EAAoB,EAKhC,QAAQ,QAAQ,EAFhB,QAAQ,KAAK,CAIrB,CACJ,CACJ,ECbO,IAAMC,EAAN,KAAqB,CACxB,OAAc,aAAaC,EAAeC,EAAiB,CACvD,IAAMC,EAAQF,EAASC,GACvB,GAAI,CAACC,EACD,MAAO,CAAC,EAGZ,IAAMC,EAAW,CAAC,EAClB,QAASC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IAC9BD,EAASC,GAAKF,EAAME,GAExB,OAAOD,CACX,CAEA,OAAc,OAAOH,EAAeC,EAAe,CAE/C,OADaD,EAASC,EAE1B,CAEA,OAAc,WAAWD,EAAeK,EAA+B,CACnE,IAAMC,EAAO,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EACpD,OAAON,EAASK,GAAM,MAAML,EAAUM,CAAI,CAC9C,CACJ,ECvBO,IAAMC,EAAN,KAAkB,CACrB,OAAc,mBAAmBC,EAA2D,CACxF,SAASC,EAAOC,EAAc,CACbF,EAAoBE,CAAI,GAEjC,OAAO,sBAAsBD,CAAM,CAE3C,CAEA,OAAO,sBAAsBA,CAAM,CACvC,CACJ,ECTO,IAAKE,OACRA,IAAA,WAAa,GAAb,aACAA,IAAA,mBACAA,IAAA,mBAHQA,OAAA,IAMUC,EAAf,KAA6B,CAChC,YACWC,EACAC,EAA4B,CAD5B,aAAAD,EACA,UAAAC,CACX,CAKJ,ECbO,IAAMC,EAAN,KAAoB,CAGvB,OAAc,YAAYC,EAAsBC,EAA+E,CAC3H,OAAK,KAAK,iBACN,KAAK,eAAiB,IAAI,eAAe,KAAK,QAAQ,EACtD,KAAK,eAAe,UAAY,IAAI,KAGxC,KAAK,eAAe,UAAU,IAAID,EAASC,CAAQ,EACnD,KAAK,eAAe,QAAQD,EAAS,CAAE,IAAK,aAAc,CAAC,EAEpD,IAAM,CAhBrB,IAAAE,EAAAC,GAiBYD,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UAAU,OAAOF,IACtCG,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UAAUH,EACnC,CACJ,CAEA,OAAe,SAASI,EAAgCC,EAA0B,CAC9E,QAAWC,KAASF,EAAS,CACzB,IAAMH,EAAYI,EAAyC,UAAU,IAAIC,EAAM,MAAM,EACrF,GAAI,CAACL,EACD,SAGJ,IAAMM,EAAU,OAAO,iBACnBC,EACAC,EACAC,EAAMH,EACND,EAAM,2BAINE,EAAQF,EAAM,0BAA0B,GAAG,WAC3CG,EAASH,EAAM,0BAA0B,GAAG,UAC5CI,EAAM,GACCJ,EAAM,eACTA,EAAM,eAAe,IACrBE,EAAQF,EAAM,eAAe,GAAG,WAChCG,EAASH,EAAM,eAAe,GAAG,YAEjCE,EAASF,EAAM,eAAuB,WACtCG,EAAUH,EAAM,eAAuB,YAG3CE,EAAQF,EAAM,YAAY,MAC1BG,EAASH,EAAM,YAAY,QAE/B,IAAMK,EAAe,KAAK,MAAMH,EAAQE,CAAG,EACrCE,EAAgB,KAAK,MAAMH,EAASC,CAAG,EAC7CT,EAASU,EAAcC,EAAeL,CAAO,CACjD,CACJ,CACJ,ECtDO,IAAeM,EAAf,cAA6CC,CAAc,CAI9D,YACWC,EACAC,EACAC,EAA4B,CACnC,MAAMD,EAASC,CAAI,EAHZ,YAAAF,EACA,aAAAC,EACA,UAAAC,EAIPC,EAAc,YAAYH,EAAQ,CAACI,EAAOC,EAAQC,IAAQ,CACtD,KAAK,WAAa,CAACF,EAAOC,EAAQC,CAAG,EAEjC,KAAK,qBACL,KAAK,oBAAoBF,EAAOC,EAAQC,CAAG,CAEnD,CAAC,CACL,CAEO,SAAgB,CACnB,OAAO,KAAK,mBAChB,CAEO,cAAcC,EAA2E,CAC5F,GAAI,KAAK,oBAAuB,MAAM,IAAI,MAAM,+FAA+F,EAC/I,KAAK,oBAAsBA,CAC/B,CAEO,YAAa,CACZ,KAAK,aACL,KAAK,OAAO,MAAQ,KAAK,WAAW,GACpC,KAAK,OAAO,OAAS,KAAK,WAAW,GACrC,OAAO,KAAK,WAEpB,CACJ,EClCO,IAAMC,EAAN,cAA8BC,CAAsB,CAGvD,YAAmBC,EAA2B,CAC1C,IAAMC,EAAUD,EAAO,WAAW,KAAM,CACpC,MAAO,EACX,CAAC,EACD,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,iDAAiD,EAErE,MAAMD,EAAQC,GAAwC,EAPvC,YAAAD,EASf,KAAK,QAAU,WAAW,iBAAiB,CAAC,CAChD,CAEO,aAAaE,EAA6BC,EAAeC,EAAsB,CApB1F,IAAAC,EAqBQ,KAAK,WAAW,EAEhB,IAAMC,GAAQD,EAAA,KAAK,UAAL,YAAAA,EAAc,kBAExBE,EACJ,GAAIL,EAAK,SAAW,GAAKA,EAAK,QAAU,GAAKI,GAAS,CAACE,EAAoBF,EAAM,MAAM,EAGnFC,EAAgB,IAAI,kBAAkBD,EAAM,OAAQJ,EAAK,SAAUA,EAAK,OAAO,MAC5E,CAEH,IAAMO,EAAO,IAAI,WAAWP,EAAK,UAAU,EAC3CA,EAAK,OAAOO,CAAI,EAChBF,EAAgB,IAAI,kBAAkBE,EAAK,MAAM,CACrD,CAEA,IAAMC,EAAY,IAAI,UAAUH,EAAeJ,EAAOC,CAAM,EAC3D,KAAK,QAAqC,aAAaM,EAAW,EAAG,CAAC,CAC3E,CACJ,ECrCA,SAASC,GAAa,CAHtB,IAAAC,EAAAC,EAAAC,EAAAC,EAII,IAAMC,EAAO,WACPC,GAASJ,EAAAG,EAAK,SAAL,KAAAH,GAAeD,EAAAI,EAAK,iBAAiB,CAAC,IAAvB,YAAAJ,EAA0B,OACxD,OAAOG,GAAAD,EAAAG,GAAA,YAAAA,EAAQ,KAAR,KAAAH,EAAcE,EAAK,aAAnB,KAAAD,EAAiCC,EAAK,WACjD,CAEO,IAAME,EAAN,cAA2BC,CAAsB,CAOpD,YAAmBC,EAA2BC,EAAiE,CAhBnH,IAAAT,EAAAC,EAkBQ,IAAMS,EAAKX,EAAM,EACjB,GAAI,CAACW,EACD,MAAM,IAAI,MAAM,2DAA2D,EAG/E,IAAMC,EAAUF,IAAS,EAA8B,QAAU,SAC3DG,EACN,CACI,MAAO,GACP,MAAO,GACP,QAAS,GACT,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GAEvB,6BAA8B,GAE9B,aAAcH,IAAS,EAA8B,EAAI,EACzD,aAAc,EACd,0BAA2B,EAC3B,oBAAqB,CACzB,EACMI,EAAUL,EAAO,WAAWG,EAASC,CAAK,EAChD,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,gCAAgCF,mBAAyB,EAG7E,IAAMG,EAASJ,EAAG,gBAAgBG,EAASD,CAAK,EAChDF,EAAG,mBAAmBI,CAAM,EAC3BD,EAAgB,UAAYC,EAE7B,MAAMN,EAAQK,GAAwC,EAjCvC,YAAAL,EAmCf,KAAK,cAAgBM,EACrB,KAAK,OAAQb,GAAAD,EAAAa,EAAQ,aAAaA,EAAQ,mBAAmB,IAAhD,YAAAb,EAAmD,KAAnD,KAAAC,EAAyD,EACtE,KAAK,QAAUY,EAAQ,aAAaA,EAAQ,YAAY,EACxD,KAAK,OAASA,EAAQ,aAAaA,EAAQ,OAAO,EAClD,KAAK,MAAQA,EAAQ,aAAaA,EAAQ,UAAU,CACxD,CACJ,ECpDO,IAAME,EAAN,KAAoB,CACvB,OAAc,OAAOC,EAAwBC,EAA2C,CACpF,GAAI,CAACD,EACD,MAAM,IAAI,MAAM,iCAAiC,EAGrD,IAAME,EAASC,EAAY,qBAAqBH,CAAS,EACzDG,EAAY,aAAaH,EAAWE,CAAM,EAE1C,GAAI,CACA,GAAID,IAAS,EACT,OAAO,IAAIG,EAAgBF,CAAM,EAC9B,GAAID,IAAS,GAA+BA,IAAS,EACxD,OAAO,IAAII,EAAaH,EAAQD,CAAI,EAEpC,MAAM,IAAI,MAAM,+BAA+BK,EAAqBL,IAAO,CAEnF,OAASM,EAAP,CACE,MAAAJ,EAAY,aAAaH,EAAWE,CAAM,EACpCK,CACV,CACJ,CAEA,OAAc,QAAQC,EAAwB,CAC1CA,EAAQ,QAAQ,CACpB,CAEA,OAAc,cAAcA,EAAwBC,EAA2E,CAC3HD,EAAQ,cAAcC,CAAmB,CAC7C,CAEA,OAAc,WAAWD,EAA8B,CACnDA,EAAQ,WAAW,CACvB,CAEA,OAAc,aAAaA,EAA0BE,EAA6BC,EAAeC,EAAsB,CACnHJ,EAAQ,aAAaE,EAAMC,EAAOC,CAAM,CAC5C,CACJ,ECjCA,eAAeC,GAAsBC,EAAcC,EAA2B,CACtE,kBAAmB,WACnB,MAAM,WAAW,UAAU,cAAc,SAASD,EAAMC,EAAQ,CAAE,MAAAA,CAAM,EAAI,MAAS,CAE7F",
+ "names": ["CaretHelper", "element", "position", "options", "_a", "_b", "isBrowser", "debug", "el", "div", "style", "computed", "isInput", "properties", "prop", "height", "outerHeight", "targetHeight", "isFirefox", "span", "coordinates", "InputHelper", "args", "resolve", "reject", "element", "keyDownCallback", "keyUpCallback", "keyDownHandler", "keyUpHandler", "beforeInputCallback", "compositionStartCallback", "compositionUpdateCallback", "compositionEndCallback", "compositionStartHandler", "beforeInputHandler", "ranges", "start", "end", "compositionUpdateHandler", "compositionEndHandler", "pointerMoveCallback", "pointerDownCallback", "pointerUpCallback", "pointerCancelCallback", "wheelCallback", "pointerMoveHandler", "pointerDownHandler", "pointerUpHandler", "pointerCancelHandler", "wheelHandler", "inputCallback", "inputHandler", "dragEvent", "dragHandler", "pointerEvent", "handler", "event", "elementRect", "keyboardRect", "inputElement", "kind", "x", "y", "caretWidth", "caretHeight", "caret", "left", "top", "CaretHelper", "text", "modifiers", "containerElement", "pointerId", "AvaloniaDOM", "element", "className", "observer", "colorShemeMedia", "prefersContrastMedia", "args", "parent", "elements", "host", "_a", "containerId", "canvas", "nativeHost", "inputElement", "isFullscreen", "top", "bottom", "left", "right", "Caniuse", "_a", "userAgentData", "userAgent", "regex1", "regex2", "sharedArrayBufferDefined", "isSharedArrayBuffer", "buffer", "StreamHelper", "stream", "position", "size", "span", "offset", "count", "_a", "heap8", "copy", "NativeControlHostTopLevelAttachment", "NativeControlHost", "parent", "element", "child", "host", "x", "y", "width", "height", "NavigationHelper", "backHandlerCallback", "GeneralHelpers", "instance", "key", "items", "retItems", "i", "name", "args", "TimerHelper", "renderFrameCallback", "render", "time", "BrowserRenderingMode", "CanvasSurface", "context", "mode", "ResizeHandler", "element", "callback", "_a", "_b", "entries", "observer", "entry", "trueDpr", "width", "height", "dpr", "displayWidth", "displayHeight", "HtmlCanvasSurfaceBase", "CanvasSurface", "canvas", "context", "mode", "ResizeHandler", "width", "height", "dpr", "sizeChangedCallback", "SoftwareSurface", "HtmlCanvasSurfaceBase", "canvas", "context", "span", "width", "height", "_a", "heap8", "clampedBuffer", "isSharedArrayBuffer", "copy", "imageData", "getGL", "_a", "_b", "_c", "_d", "self", "module", "WebGlSurface", "HtmlCanvasSurfaceBase", "canvas", "mode", "gl", "modeStr", "attrs", "context", "handle", "CanvasFactory", "container", "mode", "canvas", "AvaloniaDOM", "SoftwareSurface", "WebGlSurface", "BrowserRenderingMode", "ex", "surface", "sizeChangedCallback", "span", "width", "height", "registerServiceWorker", "path", "scope"]
+}
diff --git a/_framework/avalonia.js.map.br b/_framework/avalonia.js.map.br
new file mode 100644
index 0000000..fc7ca33
Binary files /dev/null and b/_framework/avalonia.js.map.br differ
diff --git a/_framework/avalonia.js.map.gz b/_framework/avalonia.js.map.gz
new file mode 100644
index 0000000..9ed3cc6
Binary files /dev/null and b/_framework/avalonia.js.map.gz differ
diff --git a/_framework/blazor.boot.json b/_framework/blazor.boot.json
new file mode 100644
index 0000000..adfb089
--- /dev/null
+++ b/_framework/blazor.boot.json
@@ -0,0 +1,78 @@
+{
+ "mainAssemblyName": "Semi.Avalonia.Demo.Web",
+ "resources": {
+ "hash": "sha256-DPf4xXRPI21tZzSxxoACqPzEcUPsqx7GeUmIoAHZWa8=",
+ "jsModuleNative": {
+ "dotnet.native.8.0.7.o8z0k8deif.js": "sha256-mhHKxdH8yx5ZDUsh3dRleqVaFL/MwNyp7N8pQgG7QcA="
+ },
+ "jsModuleRuntime": {
+ "dotnet.runtime.8.0.7.3dp1i72u0p.js": "sha256-soZyw6XWXOLKhA26AOyzSpCP5cAsw1wvhdPHSYNTMfQ="
+ },
+ "wasmNative": {
+ "dotnet.native.wasm": "sha256-ygbWdpd7mSY66HHXqq9phLDAZCYpbKqAnUlK/Tbo9RY="
+ },
+ "icu": {
+ "icudt_CJK.dat": "sha256-SZLtQnRc0JkwqHab0VUVP7T3uBPSeYzxzDnpxPpUnHk=",
+ "icudt_EFIGS.dat": "sha256-8fItetYY8kQ0ww6oxwTLiT3oXlBwHKumbeP2pRF4yTc=",
+ "icudt_no_CJK.dat": "sha256-L7sV7NEYP37/Qr2FPCePo5cJqRgTXRwGHuwF5Q+0Nfs="
+ },
+ "assembly": {
+ "Avalonia.Base.wasm": "sha256-20DO1foDz8Xj6s1EWUROlbYIqj4TCQ3ksDqOmtTS/SM=",
+ "Avalonia.Browser.wasm": "sha256-UkB2uwDlf6d3fkwBK1eprJLaH3M6Xl791c/Zc5spY5w=",
+ "Avalonia.Controls.ColorPicker.wasm": "sha256-FjzC3DRuFqlFrJ9UK8WlU0+QDO4qQ62QAyKPupaZQBg=",
+ "Avalonia.Controls.DataGrid.wasm": "sha256-tuJKzq21n+9S3qHmH7aTnllZzyaoDOaZ8eJOYN6lHGU=",
+ "Avalonia.Controls.wasm": "sha256-uFcb2/g6kXFdSPCoemMcDx3p43zou2jVesIZjCfqO+0=",
+ "Avalonia.DesignerSupport.wasm": "sha256-OXe/MnmQegMHOqBPcke3IB0fvSlMXc8tryUzc5+cgSs=",
+ "Avalonia.Dialogs.wasm": "sha256-lV0hvGUaDU59T1jiw8+kjJZRKk4hhsEI/otrYEsIvOo=",
+ "Avalonia.Markup.wasm": "sha256-3naBs36gioylFyqUJHzfFw7eH6ZUxV/xWltsUyHBA3U=",
+ "Avalonia.Markup.Xaml.wasm": "sha256-sAVMwg8hjpa/3lr2h/KZ9OzcCvXSCRymgrgMPkd3POo=",
+ "Avalonia.Metal.wasm": "sha256-D5NEI0X7Cr8wMKGWc7o1U7nAObFJwqOJXRJzv2WlC6o=",
+ "Avalonia.MicroCom.wasm": "sha256-OeJh6WdpDfNmTWDyrngmtgQz6EM0AV5uRXxK7FPx8jU=",
+ "Avalonia.OpenGL.wasm": "sha256-NdXVgF8DdYQAgeIuWS8bNybnkohR1zUTkR/spbtIIW8=",
+ "Avalonia.Remote.Protocol.wasm": "sha256-TDsO+XnoUgNc9rSXOgOGcTwEjYkxgPLd36chvWPRfBY=",
+ "Avalonia.Skia.wasm": "sha256-/k1zL83A92QdojrrEPIksVAUdEX0g+dwS4VHuRW2fi0=",
+ "Avalonia.Vulkan.wasm": "sha256-P1X9HBK2J0SdVvsvfkRzM1HgrYRHzSog+2/RqYHyCq0=",
+ "Avalonia.wasm": "sha256-GxegbD9Er8yA0k0LoKZwgqZFTPIrjLwJ1ScUcRH5OYs=",
+ "CommunityToolkit.Mvvm.wasm": "sha256-DtLC0+f/uVS74bu13VnUEp0wbkhyWDEiESYjEWcJkoE=",
+ "HarfBuzzSharp.wasm": "sha256-lJ+uf/j5QdDNq+rbyKQp03mCxPazObS+na/TKFd0+MU=",
+ "MicroCom.Runtime.wasm": "sha256-dI22KS20yc+ziyg4tSUpmSjG0ebPXDL5QTSZf+ehjwI=",
+ "netstandard.wasm": "sha256-Tqh2jST6NbpeIZVx2Cqn0OUCIWhNh6Oe8Q1kJxmJgMs=",
+ "Semi.Avalonia.ColorPicker.wasm": "sha256-JZ8M3auch60dGc2IfjOzhA/eykH5wel4mX7LKBxlbAY=",
+ "Semi.Avalonia.DataGrid.wasm": "sha256-2H8nrKM0aS8MKqj2r3H2bdn1KKlR0RDDv+zo1Kt53sA=",
+ "Semi.Avalonia.Demo.wasm": "sha256-PNFjTrfm1THvG7dxypdae8LT3HHbkv2QwX+FVdqxh2I=",
+ "Semi.Avalonia.Demo.Web.wasm": "sha256-gEwt7iqft71TxbI+VGTqCQHCXcbpeURSnuw0AaCN9aA=",
+ "Semi.Avalonia.wasm": "sha256-fczBfL00U7tnNfkPkRRos7ZT/eELcIUKjoa2SqOMD+k=",
+ "SkiaSharp.wasm": "sha256-xgSclqCZDzOz9K5Ip3BIjhR1BdnS27uRV2Kk4Xgc5P8=",
+ "System.Collections.Concurrent.wasm": "sha256-TNVxUC5AFQuE8xsH7qbkAnX3MEII97X6luchAssYPNM=",
+ "System.Collections.NonGeneric.wasm": "sha256-wrqgh11JGOhXibp7AbMuvCqpNT+K+uD9EWUvdbsUbpc=",
+ "System.Collections.Specialized.wasm": "sha256-Q9R4DVitLe7O1B1qY7noikaQEZ9rVrSILOwwS6dKv24=",
+ "System.Collections.wasm": "sha256-rgCw2l230Lhy7Q6xoBKzM8aEJsiC+qDf3CeucjILtyc=",
+ "System.ComponentModel.Annotations.wasm": "sha256-ZaaZ291PIDq8/Tl7269XqAkS9gbdsFf9uQhTzn7XsaY=",
+ "System.ComponentModel.Primitives.wasm": "sha256-/VEqng58aY4AlRWcez9QJ/cjVA4zWorMFPHLXpgRbyM=",
+ "System.ComponentModel.TypeConverter.wasm": "sha256-Uxd+hBoAoolkZM777ErxlaZi6zpeiFaw3s1u0kGQBZk=",
+ "System.ComponentModel.wasm": "sha256-BpKiKQgRokWXhjxyUIgJ2jFsp49PDzdUTSY/nfocCqw=",
+ "System.Console.wasm": "sha256-ZjDGs6/TEhKbXfbJld3zkg89GE1DUd61ohzCl9GlJEs=",
+ "System.IO.Compression.wasm": "sha256-uQ+ZR0uRy3II2XtpRnq2vGZfQsAF5IMQdtqlKlWlO7Y=",
+ "System.Linq.Expressions.wasm": "sha256-NnSbMKkKI+RDqIkb+8BOzSwKlEPWwzk92wGzuc2S3OA=",
+ "System.Linq.wasm": "sha256-HOicdR9qaXm9+33c3YBlcTMDN4MIj+e3D3NepUTibYU=",
+ "System.Net.Primitives.wasm": "sha256-p2RBrSbVpEuD4xZsVyORbEJnm6NmfT+OaHN4Al6QPiA=",
+ "System.Net.Sockets.wasm": "sha256-/0m/67rkMYfl+9NajgaaBqiz1hBc1C1xBojN6kbaEc0=",
+ "System.ObjectModel.wasm": "sha256-BMCc7UAbGRPVbfxmwgFpepOtaKhycRFl5S5ZLB9YZIM=",
+ "System.Private.CoreLib.wasm": "sha256-le8/eh2LFK7hkBUKdxLtLAnnXE9AtTjpuDbRYlseaJw=",
+ "System.Private.Uri.wasm": "sha256-/z2lgEQfzxBOpEYZWijw4Oh+QGL0PrmlqOIDH2svYZw=",
+ "System.Private.Xml.wasm": "sha256-zRmsI/X4a0lKruBUbVlGWBrHPUvSTUQ7vOxmpPhN4PY=",
+ "System.Runtime.InteropServices.JavaScript.wasm": "sha256-FIrjtA1/KBhvaLfYEVUXVJnRPGYwWfOSOOKuAJc5alg=",
+ "System.Runtime.InteropServices.wasm": "sha256-jbfgzvWcDa3cABhe1dD5XlrTVmk69jhaZ1FN04OOyRQ=",
+ "System.Runtime.wasm": "sha256-L9wlkuvWYUZ4ZJ7Iu6hA+BylQJEGoJ3rvVq9nrcSn0I=",
+ "System.Security.Cryptography.wasm": "sha256-3b+KW48T0hcKNrlx55ohFhRHdPLVoLzFqDFUovxQI6U=",
+ "System.Text.RegularExpressions.wasm": "sha256-vZNfESLIiSnvejLv8yDXJxoXjvIuujXq8MqlK3+UoU0=",
+ "System.Threading.Thread.wasm": "sha256-sGwEpN+RbpwoIfnrQwVK9d72S5cMruwsm6t4Cv0ZSK4=",
+ "System.Threading.wasm": "sha256-dwOEOXGBpCzvkqoyR5HDGSO57u9/sNo/a0g2WdRAhIQ=",
+ "System.wasm": "sha256-eod/LnITNsO959j6LrwLxPaXkS+PqOWHAzGnsOB9iHI="
+ }
+ },
+ "cacheBootResources": true,
+ "debugLevel": 0,
+ "linkerEnabled": true,
+ "globalizationMode": "sharded"
+}
\ No newline at end of file
diff --git a/_framework/blazor.boot.json.br b/_framework/blazor.boot.json.br
new file mode 100644
index 0000000..a0a6aad
Binary files /dev/null and b/_framework/blazor.boot.json.br differ
diff --git a/_framework/blazor.boot.json.gz b/_framework/blazor.boot.json.gz
new file mode 100644
index 0000000..7922d01
Binary files /dev/null and b/_framework/blazor.boot.json.gz differ
diff --git a/_framework/dotnet.js b/_framework/dotnet.js
new file mode 100755
index 0000000..8ee45aa
--- /dev/null
+++ b/_framework/dotnet.js
@@ -0,0 +1,4 @@
+//! Licensed to the .NET Foundation under one or more agreements.
+//! The .NET Foundation licenses this file to you under the MIT license.
+const e=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),t=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),o=Symbol.for("wasm promise_control");function n(e,t){let n=null;const r=new Promise((function(o,r){n={isDone:!1,promise:null,resolve:t=>{n.isDone||(n.isDone=!0,o(t),e&&e())},reject:e=>{n.isDone||(n.isDone=!0,r(e),t&&t())}}}));n.promise=r;const s=r;return s[o]=n,{promise:s,promise_control:n}}function r(e){return e[o]}function s(e){(function(e){return void 0!==e[o]})(e)||Ce(!1,"Promise is not controllable")}const i="MONO_WASM: ";function a(e,...t){je.diagnosticTracing&&console.debug(i+e,...t)}function l(e,...t){console.info(i+e,...t)}function c(e,...t){console.info(e,...t)}function u(e,...t){console.warn(i+e,...t)}function d(e,...t){t&&t.length>0&&t[0]&&"object"==typeof t[0]&&t[0].silent||console.error(i+e,...t)}let f;function m(e,t,o){const n={log:t.log,error:t.error},r=t;function s(t,o,r){return function(...s){try{let n=s[0];if(void 0===n)n="undefined";else if(null===n)n="null";else if("function"==typeof n)n=n.toString();else if("string"!=typeof n)try{n=JSON.stringify(n)}catch(e){n=n.toString()}if("string"==typeof n)if("["==n[0]){const t=(new Date).toISOString();n="main"!==e?`[${e}][${t}] ${n}`:`[${t}] ${n}`}else"main"!==e&&(n=`[${e}] ${n}`);o(r?JSON.stringify({method:t,payload:n,arguments:s}):[t+n,...s.slice(1)])}catch(e){n.error(`proxyConsole failed: ${e}`)}}}const i=["debug","trace","warn","info","error"];for(const e of i)"function"!=typeof r[e]&&(r[e]=s(`console.${e}: `,t.log,!1));const a=`${o}/console`.replace("https://","wss://").replace("http://","ws://");f=new WebSocket(a),f.addEventListener("open",(()=>{n.log(`browser: [${e}] Console websocket connected.`)})),f.addEventListener("error",(t=>{n.error(`[${e}] websocket error: ${t}`,t)})),f.addEventListener("close",(t=>{n.error(`[${e}] websocket closed: ${t}`,t)}));const l=e=>{f.readyState===WebSocket.OPEN?f.send(e):n.log(e)};for(const e of["log",...i])r[e]=s(`console.${e}`,l,!0)}const h={},g={},p={};let b,w,y;function v(){const e=Object.values(p),t=Object.values(g),o=R(e),n=R(t),r=o+n;if(0===r)return;const s=_e?"%c":"",i=_e?["background: purple; color: white; padding: 1px 3px; border-radius: 3px;","font-weight: bold;","font-weight: normal;"]:[],a=je.config.linkerEnabled?"":"\nThis application was built with linking (tree shaking) disabled. \nPublished applications will be significantly smaller if you install wasm-tools workload. \nSee also https://aka.ms/dotnet-wasm-features";console.groupCollapsed(`${s}dotnet${s} Loaded ${j(r)} resources${s}${a}`,...i),e.length&&(console.groupCollapsed(`Loaded ${j(o)} resources from cache`),console.table(p),console.groupEnd()),t.length&&(console.groupCollapsed(`Loaded ${j(n)} resources from network`),console.table(g),console.groupEnd()),console.groupEnd()}async function _(){const e=b;if(e){const t=(await e.keys()).map((async t=>{t.url in h||await e.delete(t)}));await Promise.all(t)}}function E(e){return`${e.resolvedUrl}.${e.hash}`}function R(e){return e.reduce(((e,t)=>e+(t.responseBytes||0)),0)}function j(e){return`${(e/1048576).toFixed(2)} MB`}function x(e){var t;if((null===(t=e.resources)||void 0===t?void 0:t.icu)&&"invariant"!=e.globalizationMode){const t=e.applicationCulture||(_e?navigator.languages&&navigator.languages[0]:Intl.DateTimeFormat().resolvedOptions().locale),o=Object.keys(e.resources.icu);let n=null;if("custom"===e.globalizationMode?1===o.length&&(n=o[0]):"hybrid"===e.globalizationMode?n="icudt_hybrid.dat":t&&"all"!==e.globalizationMode?"sharded"===e.globalizationMode&&(n=function(e){const t=e.split("-")[0];return"en"===t||["fr","fr-FR","it","it-IT","de","de-DE","es","es-ES"].includes(e)?"icudt_EFIGS.dat":["zh","ko","ja"].includes(t)?"icudt_CJK.dat":"icudt_no_CJK.dat"}(t)):n="icudt.dat",n&&o.includes(n))return n}return e.globalizationMode="invariant",null}const S=class{constructor(e){this.url=e}toString(){return this.url}};async function A(e,t){try{const o="function"==typeof globalThis.fetch;if(ye){const n=e.startsWith("file://");if(!n&&o)return globalThis.fetch(e,t||{credentials:"same-origin"});w||(y=Se.require("url"),w=Se.require("fs")),n&&(e=y.fileURLToPath(e));const r=await w.promises.readFile(e);return{ok:!0,headers:{length:0,get:()=>null},url:e,arrayBuffer:()=>r,json:()=>JSON.parse(r),text:()=>{throw new Error("NotImplementedException")}}}if(o)return globalThis.fetch(e,t||{credentials:"same-origin"});if("function"==typeof read)return{ok:!0,url:e,headers:{length:0,get:()=>null},arrayBuffer:()=>new Uint8Array(read(e,"binary")),json:()=>JSON.parse(read(e,"utf8")),text:()=>read(e,"utf8")}}catch(t){return{ok:!1,url:e,status:500,headers:{length:0,get:()=>null},statusText:"ERR28: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t},text:()=>{throw t}}}throw new Error("No fetch implementation available")}function D(e){return"string"!=typeof e&&Ce(!1,"url must be a string"),!O(e)&&0!==e.indexOf("./")&&0!==e.indexOf("../")&&globalThis.URL&&globalThis.document&&globalThis.document.baseURI&&(e=new URL(e,globalThis.document.baseURI).toString()),e}const C=/^[a-zA-Z][a-zA-Z\d+\-.]*?:\/\//,T=/[a-zA-Z]:[\\/]/;function O(e){return ye||Ee?e.startsWith("/")||e.startsWith("\\")||-1!==e.indexOf("///")||T.test(e):C.test(e)}let k,M=0;const $=[],L=[],I=new Map,U={"js-module-threads":!0,"js-module-runtime":!0,"js-module-dotnet":!0,"js-module-native":!0},N={...U,"js-module-library-initializer":!0},P={...U,dotnetwasm:!0,heap:!0,manifest:!0},z={...N,manifest:!0},F={...N,dotnetwasm:!0},W={dotnetwasm:!0,symbols:!0},B={resource:!0,assembly:!0,pdb:!0,heap:!0,icu:!0},V={...N,dotnetwasm:!0,symbols:!0};function q(e){return!("icu"==e.behavior&&e.name!=je.preferredIcuAsset)}function J(e,t,o){const n=Object.keys(t||{});Ce(1==n.length,`Expect to have one ${o} asset in resources`);const r=n[0],s={name:r,hash:t[r],behavior:o};return H(s),e.push(s),s}function H(e){P[e.behavior]&&I.set(e.behavior,e)}function Q(e){const t=function(e){Ce(P[e],`Unknown single asset behavior ${e}`);const t=I.get(e);return Ce(t,`Single asset for ${e} not found`),t}(e);if(t.resolvedUrl=je.locateFile(t.name),U[t.behavior]){const e=se(t);e?("string"!=typeof e&&Ce(!1,"loadBootResource response for 'dotnetjs' type should be a URL string"),t.resolvedUrl=e):t.resolvedUrl=ee(t.resolvedUrl,t.behavior)}else if("dotnetwasm"!==t.behavior)throw new Error(`Unknown single asset behavior ${e}`);return t}async function Z(){a("mono_download_assets");try{const e=[],t=t=>{!V[t.behavior]&&q(t)&&je.expected_instantiated_assets_count++,!F[t.behavior]&&q(t)&&(je.expected_downloaded_assets_count++,e.push(Y(t)))};for(const e of L)t(e);await je.memorySnapshotSkippedOrDone.promise;for(const e of $)if(Re.loadedMemorySnapshotSize){if(ie(e),"resource"==e.behavior||"assembly"==e.behavior||"pdb"==e.behavior){const t=X(e,""),o="string"==typeof e.virtualPath?e.virtualPath:e.name;je._loaded_files.push({url:t,file:o})}}else t(e);je.allDownloadsQueued.promise_control.resolve(),await je.runtimeModuleLoaded.promise;const o=[];for(const t of e)o.push((async()=>{const e=await t;if(e.buffer){if(!V[e.behavior]){e.buffer&&"object"==typeof e.buffer||Ce(!1,"asset buffer must be array-like or buffer-like or promise of these"),"string"!=typeof e.resolvedUrl&&Ce(!1,"resolvedUrl must be string");const t=e.resolvedUrl,o=await e.buffer,n=new Uint8Array(o);ie(e),await Re.beforeOnRuntimeInitialized.promise,Re.instantiate_asset(e,t,n)}}else W[e.behavior]?("symbols"===e.behavior&&(await Re.instantiate_symbols_asset(e),ie(e)),W[e.behavior]&&++je.actual_downloaded_assets_count):(e.isOptional||Ce(!1,"Expected asset to have the downloaded buffer"),!F[e.behavior]&&q(e)&&je.expected_downloaded_assets_count--,!V[e.behavior]&&q(e)&&je.expected_instantiated_assets_count--)})());Promise.all(o).then((()=>{Re.allAssetsInMemory.promise_control.resolve()})).catch((e=>{throw je.err("Error in mono_download_assets: "+e),Me(1,e),e}))}catch(e){throw je.err("Error in mono_download_assets: "+e),e}}async function G(e){const t=await Y(e);return await t.pendingDownloadInternal.response,t.buffer}async function Y(e){try{return await K(e)}catch(t){if(!je.enableDownloadRetry)throw t;if(Ee||ye)throw t;if(e.pendingDownload&&e.pendingDownloadInternal==e.pendingDownload)throw t;if(e.resolvedUrl&&-1!=e.resolvedUrl.indexOf("file://"))throw t;if(t&&404==t.status)throw t;e.pendingDownloadInternal=void 0,await je.allDownloadsQueued.promise;try{return a(`Retrying download '${e.name}'`),await K(e)}catch(t){return e.pendingDownloadInternal=void 0,await(100,new Promise((e=>globalThis.setTimeout(e,100)))),a(`Retrying download (2) '${e.name}' after delay`),await K(e)}}}async function K(e){for(;k;)await k.promise;try{++M,M==je.maxParallelDownloads&&(a("Throttling further parallel downloads"),k=n());const t=await async function(e){if(e.pendingDownload&&(e.pendingDownloadInternal=e.pendingDownload),e.pendingDownloadInternal&&e.pendingDownloadInternal.response)return e.pendingDownloadInternal.response;if(e.buffer){const t=await e.buffer;return e.resolvedUrl||(e.resolvedUrl="undefined://"+e.name),e.pendingDownloadInternal={url:e.resolvedUrl,name:e.name,response:Promise.resolve({ok:!0,arrayBuffer:()=>t,json:()=>JSON.parse(new TextDecoder("utf-8").decode(t)),text:()=>{throw new Error("NotImplementedException")},headers:{get:()=>{}}})},e.pendingDownloadInternal.response}const t=e.loadRemote&&je.config.remoteSources?je.config.remoteSources:[""];let o;for(let n of t){n=n.trim(),"./"===n&&(n="");const t=X(e,n);e.name===t?a(`Attempting to download '${t}'`):a(`Attempting to download '${t}' for ${e.name}`);try{e.resolvedUrl=t;const n=ne(e);if(e.pendingDownloadInternal=n,o=await n.response,!o||!o.ok)continue;return o}catch(e){o||(o={ok:!1,url:t,status:0,statusText:""+e});continue}}const n=e.isOptional||e.name.match(/\.pdb$/)&&je.config.ignorePdbLoadErrors;if(o||Ce(!1,`Response undefined ${e.name}`),!n){const t=new Error(`download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`);throw t.status=o.status,t}l(`optional download '${o.url}' for ${e.name} failed ${o.status} ${o.statusText}`)}(e);return t?(W[e.behavior]||(e.buffer=await t.arrayBuffer(),++je.actual_downloaded_assets_count),e):e}finally{if(--M,k&&M==je.maxParallelDownloads-1){a("Resuming more parallel downloads");const e=k;k=void 0,e.promise_control.resolve()}}}function X(e,t){let o;return null==t&&Ce(!1,`sourcePrefix must be provided for ${e.name}`),e.resolvedUrl?o=e.resolvedUrl:(o=""===t?"assembly"===e.behavior||"pdb"===e.behavior?e.name:"resource"===e.behavior&&e.culture&&""!==e.culture?`${e.culture}/${e.name}`:e.name:t+e.name,o=ee(je.locateFile(o),e.behavior)),o&&"string"==typeof o||Ce(!1,"attemptUrl need to be path or url string"),o}function ee(e,t){return je.modulesUniqueQuery&&z[t]&&(e+=je.modulesUniqueQuery),e}let te=0;const oe=new Set;function ne(e){try{e.resolvedUrl||Ce(!1,"Request's resolvedUrl must be set");const t=async function(e){let t=await async function(e){const t=b;if(!t||e.noCache||!e.hash||0===e.hash.length)return;const o=E(e);let n;h[o]=!0;try{n=await t.match(o)}catch(e){}if(!n)return;const r=parseInt(n.headers.get("content-length")||"0");return p[e.name]={responseBytes:r},n}(e);return t||(t=await function(e){let t=e.resolvedUrl;if(je.loadBootResource){const o=se(e);if(o instanceof Promise)return o;"string"==typeof o&&(t=o)}const o={};return je.config.disableNoCacheFetch||(o.cache="no-cache"),e.useCredentials?o.credentials="include":!je.config.disableIntegrityCheck&&e.hash&&(o.integrity=e.hash),je.fetch_like(t,o)}(e),function(e,t){const o=b;if(!o||e.noCache||!e.hash||0===e.hash.length)return;const n=t.clone();setTimeout((()=>{const t=E(e);!async function(e,t,o,n){const r=await n.arrayBuffer(),s=function(e){if("undefined"!=typeof performance)return performance.getEntriesByName(e)[0]}(n.url),i=s&&s.encodedBodySize||void 0;g[t]={responseBytes:i};const a=new Response(r,{headers:{"content-type":n.headers.get("content-type")||"","content-length":(i||n.headers.get("content-length")||"").toString()}});try{await e.put(o,a)}catch(e){}}(o,e.name,t,n)}),0)}(e,t)),t}(e),o={name:e.name,url:e.resolvedUrl,response:t};return oe.add(e.name),o.response.then((()=>{"assembly"==e.behavior&&je.loadedAssemblies.push(e.name),te++,je.onDownloadResourceProgress&&je.onDownloadResourceProgress(te,oe.size)})),o}catch(t){const o={ok:!1,url:e.resolvedUrl,status:500,statusText:"ERR29: "+t,arrayBuffer:()=>{throw t},json:()=>{throw t}};return{name:e.name,url:e.resolvedUrl,response:Promise.resolve(o)}}}const re={resource:"assembly",assembly:"assembly",pdb:"pdb",icu:"globalization",vfs:"configuration",manifest:"manifest",dotnetwasm:"dotnetwasm","js-module-dotnet":"dotnetjs","js-module-native":"dotnetjs","js-module-runtime":"dotnetjs","js-module-threads":"dotnetjs"};function se(e){var t;if(je.loadBootResource){const o=null!==(t=e.hash)&&void 0!==t?t:"",n=e.resolvedUrl,r=re[e.behavior];if(r){const t=je.loadBootResource(r,e.name,n,o,e.behavior);return"string"==typeof t?D(t):t}}}function ie(e){e.pendingDownloadInternal=null,e.pendingDownload=null,e.buffer=null,e.moduleExports=null}function ae(e){let t=e.lastIndexOf("/");return t>=0&&t++,e.substring(t)}async function le(e){if(!e)return;const t=Object.keys(e);await Promise.all(t.map((e=>async function(e){try{const t=ee(je.locateFile(e),"js-module-library-initializer");a(`Attempting to import '${t}' for ${e}`);const o=await import(t);je.libraryInitializers.push({scriptName:e,exports:o})}catch(t){u(`Failed to import library initializer '${e}': ${t}`)}}(e))))}async function ce(e,t){if(!je.libraryInitializers)return;const o=[];for(let n=0;nr.exports[e](...t))))}await Promise.all(o)}async function ue(e,t,o){try{await o()}catch(o){throw u(`Failed to invoke '${t}' on library initializer '${e}': ${o}`),Me(1,o),o}}var de="Release";function fe(e,t){if(e===t)return e;const o={...t};return void 0!==o.assets&&o.assets!==e.assets&&(o.assets=[...e.assets||[],...o.assets||[]]),void 0!==o.resources&&(o.resources=he(e.resources||{assembly:{},jsModuleNative:{},jsModuleRuntime:{},wasmNative:{}},o.resources)),void 0!==o.environmentVariables&&(o.environmentVariables={...e.environmentVariables||{},...o.environmentVariables||{}}),void 0!==o.runtimeOptions&&o.runtimeOptions!==e.runtimeOptions&&(o.runtimeOptions=[...e.runtimeOptions||[],...o.runtimeOptions||[]]),Object.assign(e,o)}function me(e,t){if(e===t)return e;const o={...t};return o.config&&(e.config||(e.config={}),o.config=fe(e.config,o.config)),Object.assign(e,o)}function he(e,t){if(e===t)return e;const o={...t};return void 0!==o.assembly&&(o.assembly={...e.assembly||{},...o.assembly||{}}),void 0!==o.lazyAssembly&&(o.lazyAssembly={...e.lazyAssembly||{},...o.lazyAssembly||{}}),void 0!==o.pdb&&(o.pdb={...e.pdb||{},...o.pdb||{}}),void 0!==o.jsModuleWorker&&(o.jsModuleWorker={...e.jsModuleWorker||{},...o.jsModuleWorker||{}}),void 0!==o.jsModuleNative&&(o.jsModuleNative={...e.jsModuleNative||{},...o.jsModuleNative||{}}),void 0!==o.jsModuleRuntime&&(o.jsModuleRuntime={...e.jsModuleRuntime||{},...o.jsModuleRuntime||{}}),void 0!==o.wasmSymbols&&(o.wasmSymbols={...e.wasmSymbols||{},...o.wasmSymbols||{}}),void 0!==o.wasmNative&&(o.wasmNative={...e.wasmNative||{},...o.wasmNative||{}}),void 0!==o.icu&&(o.icu={...e.icu||{},...o.icu||{}}),void 0!==o.satelliteResources&&(o.satelliteResources=ge(e.satelliteResources||{},o.satelliteResources||{})),void 0!==o.modulesAfterConfigLoaded&&(o.modulesAfterConfigLoaded={...e.modulesAfterConfigLoaded||{},...o.modulesAfterConfigLoaded||{}}),void 0!==o.modulesAfterRuntimeReady&&(o.modulesAfterRuntimeReady={...e.modulesAfterRuntimeReady||{},...o.modulesAfterRuntimeReady||{}}),void 0!==o.extensions&&(o.extensions={...e.extensions||{},...o.extensions||{}}),void 0!==o.vfs&&(o.vfs=ge(e.vfs||{},o.vfs||{})),Object.assign(e,o)}function ge(e,t){if(e===t)return e;for(const o in t)e[o]={...e[o],...t[o]};return e}function pe(){const e=je.config;if(e.environmentVariables=e.environmentVariables||{},e.runtimeOptions=e.runtimeOptions||[],e.resources=e.resources||{assembly:{},jsModuleNative:{},jsModuleWorker:{},jsModuleRuntime:{},wasmNative:{},vfs:{},satelliteResources:{}},e.assets){a("config.assets is deprecated, use config.resources instead");for(const t of e.assets){const o={};o[t.name]=t.hash||"";const n={};switch(t.behavior){case"assembly":n.assembly=o;break;case"pdb":n.pdb=o;break;case"resource":n.satelliteResources={},n.satelliteResources[t.culture]=o;break;case"icu":n.icu=o;break;case"symbols":n.wasmSymbols=o;break;case"vfs":n.vfs={},n.vfs[t.virtualPath]=o;break;case"dotnetwasm":n.wasmNative=o;break;case"js-module-threads":n.jsModuleWorker=o;break;case"js-module-runtime":n.jsModuleRuntime=o;break;case"js-module-native":n.jsModuleNative=o;break;case"js-module-dotnet":break;default:throw new Error(`Unexpected behavior ${t.behavior} of asset ${t.name}`)}he(e.resources,n)}}je.assertAfterExit=e.assertAfterExit=e.assertAfterExit||!_e,void 0===e.debugLevel&&"Debug"===de&&(e.debugLevel=-1),void 0===e.cachedResourcesPurgeDelay&&(e.cachedResourcesPurgeDelay=1e4),e.debugLevel=we(e)?e.debugLevel:0,void 0===e.diagnosticTracing&&"Debug"===de&&(e.diagnosticTracing=!0),e.applicationCulture&&(e.environmentVariables.LANG=`${e.applicationCulture}.UTF-8`),Re.diagnosticTracing=je.diagnosticTracing=!!e.diagnosticTracing,Re.waitForDebugger=e.waitForDebugger,e.startupMemoryCache=!!e.startupMemoryCache,e.startupMemoryCache&&Re.waitForDebugger&&(a("Disabling startupMemoryCache because waitForDebugger is set"),e.startupMemoryCache=!1),Re.enablePerfMeasure=!!e.browserProfilerOptions&&globalThis.performance&&"function"==typeof globalThis.performance.measure,je.maxParallelDownloads=e.maxParallelDownloads||je.maxParallelDownloads,je.enableDownloadRetry=void 0!==e.enableDownloadRetry?e.enableDownloadRetry:je.enableDownloadRetry}let be=!1;function we(e){return!!globalThis.navigator&&((!!e.resources.pdb||0!=e.debugLevel)&&(je.isChromium||je.isFirefox))}const ye="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ve="function"==typeof importScripts,_e="object"==typeof window||ve&&!ye,Ee=!_e&&!ye&&!ve;let Re={},je={},xe={},Se={},Ae=!1;const De={mono:{},binding:{},internal:Se,module:{},loaderHelpers:je,runtimeHelpers:Re,api:xe};function Ce(e,t){if(e)return;const o="Assert failed: "+("function"==typeof t?t():t),n=new Error(o);Re.abort(n)}function Te(){return void 0!==je.exitCode}function Oe(){return Re.runtimeReady&&!Te()}function ke(){Re.runtimeReady||Ce(!1,"mono runtime didn't start yet"),je.assertAfterExit&&Te()&&Ce(!1,`mono runtime already exited with ${je.exitCode}`)}function Me(e,t){var o;const n=t&&"object"==typeof t;e=n&&"number"==typeof t.status?t.status:e;const r=n&&"string"==typeof t.message?t.message:""+t;if((t=n?t:Re.ExitStatus?new Re.ExitStatus(e):new Error("Exit with code "+e+" "+r)).status=e,t.message||(t.message=r),t.stack||(t.stack=(new Error).stack||""),t.silent=!0,!Te()){try{Re.runtimeReady||(a("abort_startup, reason: "+t),function(e){je.allDownloadsQueued.promise_control.reject(e),je.afterConfigLoaded.promise_control.reject(e),je.wasmDownloadPromise.promise_control.reject(e),je.runtimeModuleLoaded.promise_control.reject(e),je.memorySnapshotSkippedOrDone.promise_control.reject(e),Re.dotnetReady&&(Re.dotnetReady.promise_control.reject(e),Re.afterInstantiateWasm.promise_control.reject(e),Re.beforePreInit.promise_control.reject(e),Re.afterPreInit.promise_control.reject(e),Re.afterPreRun.promise_control.reject(e),Re.beforeOnRuntimeInitialized.promise_control.reject(e),Re.afterOnRuntimeInitialized.promise_control.reject(e),Re.afterPostRun.promise_control.reject(e))}(t)),function(e,t){if(0!==e&&t){const e=Re.ExitStatus&&t instanceof Re.ExitStatus?a:d;"string"==typeof t?e(t):t.stack&&t.message?Re.stringify_as_error_with_stack?e(Re.stringify_as_error_with_stack(t)):e(t.message+"\n"+t.stack):e(JSON.stringify(t))}if(je.config&&je.config.logExitCode)if(f){const t=()=>{0==f.bufferedAmount?c("WASM EXIT "+e):globalThis.setTimeout(t,100)};t()}else c("WASM EXIT "+e)}(e,t),function(e){if(_e&&je.config&&je.config.appendElementOnExit){const t=document.createElement("label");t.id="tests_done",e&&(t.style.background="red"),t.innerHTML=e.toString(),document.body.appendChild(t)}}(e),Re.jiterpreter_dump_stats&&Re.jiterpreter_dump_stats(!1),0===e&&(null===(o=je.config)||void 0===o?void 0:o.interopCleanupOnExit)&&Re.forceDisposeProxies(!0,!0)}catch(e){u("mono_exit failed",e)}je.exitCode=e}if(je.config&&je.config.asyncFlushOnExit&&0===e)throw(async()=>{try{await async function(){try{const e=await import("process"),t=e=>new Promise(((t,o)=>{e.on("error",(e=>o(e))),e.write("",(function(){t()}))})),o=t(e.stderr),n=t(e.stdout);await Promise.all([n,o])}catch(e){d(`flushing std* streams failed: ${e}`)}}()}finally{$e(e,t)}})(),t;$e(e,t)}function $e(e,t){if(Oe()&&Re.mono_wasm_exit&&Re.mono_wasm_exit(e),0!==e||!_e)throw ye&&Se.process?Se.process.exit(e):Re.quit&&Re.quit(e,t),t}!function(o){if(Ae)throw new Error("Loader module already loaded");Ae=!0,Re=o.runtimeHelpers,je=o.loaderHelpers,xe=o.api,Se=o.internal,Object.assign(xe,{INTERNAL:Se,invokeLibraryInitializers:ce}),Object.assign(o.module,{disableDotnet6Compatibility:!0,config:{environmentVariables:{}}}),Object.assign(Re,{mono_wasm_bindings_is_ready:!1,javaScriptExports:{},config:o.module.config,diagnosticTracing:!1,abort:e=>{throw e}}),Object.assign(je,{gitHash:"2aade6beb02ea367fd97c4070a4198802fe61c03",config:o.module.config,diagnosticTracing:!1,maxParallelDownloads:16,enableDownloadRetry:!0,assertAfterExit:!_e,_loaded_files:[],loadedFiles:[],loadedAssemblies:[],libraryInitializers:[],actual_downloaded_assets_count:0,actual_instantiated_assets_count:0,expected_downloaded_assets_count:0,expected_instantiated_assets_count:0,afterConfigLoaded:n(),allDownloadsQueued:n(),wasmDownloadPromise:n(),runtimeModuleLoaded:n(),memorySnapshotSkippedOrDone:n(),is_exited:Te,is_runtime_running:Oe,assert_runtime_running:ke,mono_exit:Me,createPromiseController:n,getPromiseController:r,assertIsControllablePromise:s,mono_download_assets:Z,resolve_single_asset_path:Q,setup_proxy_console:m,logDownloadStatsToConsole:v,purgeUnusedCacheEntriesAsync:_,hasDebuggingEnabled:we,retrieve_asset_download:G,invokeLibraryInitializers:ce,exceptions:e,simd:t})}(De);const Le="__mono_message_please_dont_collide__";let Ie=!1;const Ue=De.module,Ne=Ue.config;async function Pe(e){if("function"==typeof e){const t=e(De.api);if(t.ready)throw new Error("Module.ready couldn't be redefined.");Object.assign(Ue,t),me(Ue,t)}else{if("object"!=typeof e)throw new Error("Can't use moduleFactory callback of createDotnetRuntime function.");me(Ue,e)}return await async function(e){if(ye){const e=await import("process"),t=14;if(e.versions.node.split(".")[0]0&&(je.modulesUniqueQuery=t.substring(o)),je.scriptUrl=t.replace(/\\/g,"/").replace(/[?#].*/,""),je.scriptDirectory=(n=je.scriptUrl).slice(0,n.lastIndexOf("/"))+"/",je.locateFile=e=>"URL"in globalThis&&globalThis.URL!==S?new URL(e,je.scriptDirectory).toString():O(e)?e:je.scriptDirectory+e,je.fetch_like=A,je.out=console.log,je.err=console.error,je.onDownloadResourceProgress=e.onDownloadResourceProgress,_e&&globalThis.navigator){const e=globalThis.navigator,t=e.userAgentData&&e.userAgentData.brands;t&&t.length>0?je.isChromium=t.some((e=>"Google Chrome"===e.brand||"Microsoft Edge"===e.brand||"Chromium"===e.brand)):e.userAgent&&(je.isChromium=e.userAgent.includes("Chrome"),je.isFirefox=e.userAgent.includes("Firefox"))}Se.require=ye?await import("module").then((e=>e.createRequire(import.meta.url))):Promise.resolve((()=>{throw new Error("require not supported")})),void 0===globalThis.URL&&(globalThis.URL=S)}(Ue),Ue.ENVIRONMENT_IS_PTHREAD?async function(){(function(){const e=new MessageChannel,t=e.port1,o=e.port2;t.addEventListener("message",(e=>{var n;n=JSON.parse(e.data.config),Ie?a("mono config already received"):(fe(je.config,n),pe(),a("mono config received"),Ie=!0,je.afterConfigLoaded.promise_control.resolve(je.config),_e&&n.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&je.setup_proxy_console("pthread-worker",console,self.location.href)),t.close(),o.close()}),{once:!0}),t.start(),self.postMessage({[Le]:{monoCmd:"preload",port:o}},[o])})(),await je.afterConfigLoaded.promise,function(){const e=je.config;e.assets||Ce(!1,"config.assets must be defined");for(const t of e.assets)H(t)}();const e=ze(),t=await Promise.all(e);return await Fe(t),Ue}():async function(){var e;Ue.configSrc||je.config&&0!==Object.keys(je.config).length&&(je.config.assets||je.config.resources)||(Ue.configSrc="./blazor.boot.json"),await async function(e){var t;const o=e.configSrc;if(be)await je.afterConfigLoaded.promise;else try{if(be=!0,o&&(a("mono_wasm_load_config"),await async function(e){const t=je.locateFile(e.configSrc),o=void 0!==je.loadBootResource?je.loadBootResource("manifest","blazor.boot.json",t,"","manifest"):s(t);let n;n=o?"string"==typeof o?await s(D(o)):await o:await s(ee(t,"manifest"));const r=await async function(e){const t=je.config,o=await e.json();t.applicationEnvironment||(o.applicationEnvironment=e.headers.get("Blazor-Environment")||e.headers.get("DotNet-Environment")||"Production"),o.environmentVariables||(o.environmentVariables={});const n=e.headers.get("DOTNET-MODIFIABLE-ASSEMBLIES");n&&(o.environmentVariables.DOTNET_MODIFIABLE_ASSEMBLIES=n);const r=e.headers.get("ASPNETCORE-BROWSER-TOOLS");return r&&(o.environmentVariables.__ASPNETCORE_BROWSER_TOOLS=r),o}(n);function s(e){return je.fetch_like(e,{method:"GET",credentials:"include",cache:"no-cache"})}fe(je.config,r)}(e)),pe(),await le(null===(t=je.config.resources)||void 0===t?void 0:t.modulesAfterConfigLoaded),await ce("onRuntimeConfigLoaded",[je.config]),e.onConfigLoaded)try{await e.onConfigLoaded(je.config,xe),pe()}catch(e){throw d("onConfigLoaded() failed",e),e}pe(),je.config.startupMemoryCache&&e.instantiateWasm&&Ce(!1,"startupMemoryCache is not supported with Module.instantiateWasm"),je.afterConfigLoaded.promise_control.resolve(je.config),je.config.startupMemoryCache||je.memorySnapshotSkippedOrDone.promise_control.resolve()}catch(t){const n=`Failed to load config file ${o} ${t} ${null==t?void 0:t.stack}`;throw je.config=e.config=Object.assign(je.config,{message:n,error:t,isError:!0}),Me(1,new Error(n)),t}}(Ue),function(){const e=je.config,t=[];if(e.assets)for(const t of e.assets)"object"!=typeof t&&Ce(!1,`asset must be object, it was ${typeof t} : ${t}`),"string"!=typeof t.behavior&&Ce(!1,"asset behavior must be known string"),"string"!=typeof t.name&&Ce(!1,"asset name must be string"),t.resolvedUrl&&"string"!=typeof t.resolvedUrl&&Ce(!1,"asset resolvedUrl could be string"),t.hash&&"string"!=typeof t.hash&&Ce(!1,"asset resolvedUrl could be string"),t.pendingDownload&&"object"!=typeof t.pendingDownload&&Ce(!1,"asset pendingDownload could be object"),B[t.behavior]?$.push(t):L.push(t),H(t);else if(e.resources){const o=e.resources;if(o.wasmNative||Ce(!1,"resources.wasmNative must be defined"),o.jsModuleNative||Ce(!1,"resources.jsModuleNative must be defined"),o.jsModuleRuntime||Ce(!1,"resources.jsModuleRuntime must be defined"),J(L,o.wasmNative,"dotnetwasm"),J(t,o.jsModuleNative,"js-module-native"),J(t,o.jsModuleRuntime,"js-module-runtime"),o.assembly)for(const e in o.assembly)$.push({name:e,hash:o.assembly[e],behavior:"assembly"});if(0!=e.debugLevel&&o.pdb)for(const e in o.pdb)$.push({name:e,hash:o.pdb[e],behavior:"pdb"});if(e.loadAllSatelliteResources&&o.satelliteResources)for(const e in o.satelliteResources)for(const t in o.satelliteResources[e])$.push({name:t,hash:o.satelliteResources[e][t],behavior:"resource",culture:e});if(o.vfs)for(const e in o.vfs)for(const t in o.vfs[e])L.push({name:t,hash:o.vfs[e][t],behavior:"vfs",virtualPath:e});const n=x(e);if(n&&o.icu)for(const e in o.icu)e===n&&$.push({name:e,hash:o.icu[e],behavior:"icu",loadRemote:!0});if(o.wasmSymbols)for(const e in o.wasmSymbols)L.push({name:e,hash:o.wasmSymbols[e],behavior:"symbols"})}if(e.appsettings)for(let t=0;t{je.wasmDownloadPromise.promise_control.resolve(e)})).catch((e=>{Me(1,e)})),setTimeout((()=>{!function(){if(je.preferredIcuAsset=x(je.config),je.invariantMode="invariant"==je.config.globalizationMode,!je.invariantMode)if(je.preferredIcuAsset)a("ICU data archive(s) available, disabling invariant mode");else{if("custom"===je.config.globalizationMode||"all"===je.config.globalizationMode||"sharded"===je.config.globalizationMode){const e="invariant globalization mode is inactive and no ICU data archives are available";throw d(`ERROR: ${e}`),new Error(e)}a("ICU data archive(s) not available, using invariant globalization mode"),je.invariantMode=!0,je.preferredIcuAsset=null}const e="DOTNET_SYSTEM_GLOBALIZATION_INVARIANT",t="DOTNET_SYSTEM_GLOBALIZATION_HYBRID",o=je.config.environmentVariables;if(void 0===o[t]&&"hybrid"===je.config.globalizationMode?o[t]="1":void 0===o[e]&&je.invariantMode&&(o[e]="1"),void 0===o.TZ)try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone||null;e&&(o.TZ=e)}catch(e){l("failed to detect timezone, will fallback to UTC")}}(),Z()}),0);const o=await Promise.all(t);return await Fe(o),await Re.dotnetReady.promise,await le(null===(e=je.config.resources)||void 0===e?void 0:e.modulesAfterRuntimeReady),await ce("onRuntimeReady",[De.api]),xe}()}function ze(){const e=Q("js-module-runtime"),t=Q("js-module-native");let o,n;return"object"==typeof e.moduleExports?o=e.moduleExports:(a(`Attempting to import '${e.resolvedUrl}' for ${e.name}`),o=import(e.resolvedUrl)),"object"==typeof t.moduleExports?n=t.moduleExports:(a(`Attempting to import '${t.resolvedUrl}' for ${t.name}`),n=import(t.resolvedUrl)),[o,n]}async function Fe(e){const{initializeExports:t,initializeReplacements:o,configureRuntimeStartup:n,configureEmscriptenStartup:r,configureWorkerStartup:s,setRuntimeGlobals:i,passEmscriptenInternals:a}=e[0],{default:l}=e[1];i(De),t(De),await n(De.module),je.runtimeModuleLoaded.promise_control.resolve(),l((e=>(Object.assign(Ue,{ready:e.ready,__dotnet_runtime:{initializeReplacements:o,configureEmscriptenStartup:r,configureWorkerStartup:s,passEmscriptenInternals:a}}),Ue)))}const We=new class{withModuleConfig(e){try{return me(Ue,e),this}catch(e){throw Me(1,e),e}}withOnConfigLoaded(e){try{return me(Ue,{onConfigLoaded:e}),this}catch(e){throw Me(1,e),e}}withConsoleForwarding(){try{return fe(Ne,{forwardConsoleLogsToWS:!0}),this}catch(e){throw Me(1,e),e}}withExitOnUnhandledError(){const e=function(e,t){e.preventDefault();try{t&&t.silent||Me(1,t)}catch(e){}};try{return _e&&(window.addEventListener("unhandledrejection",(t=>e(t,t.reason))),window.addEventListener("error",(t=>e(t,t.error)))),this}catch(e){throw Me(1,e),e}}withAsyncFlushOnExit(){try{return fe(Ne,{asyncFlushOnExit:!0}),this}catch(e){throw Me(1,e),e}}withExitCodeLogging(){try{return fe(Ne,{logExitCode:!0}),this}catch(e){throw Me(1,e),e}}withElementOnExit(){try{return fe(Ne,{appendElementOnExit:!0}),this}catch(e){throw Me(1,e),e}}withInteropCleanupOnExit(){try{return fe(Ne,{interopCleanupOnExit:!0}),this}catch(e){throw Me(1,e),e}}withAssertAfterExit(){try{return fe(Ne,{assertAfterExit:!0}),this}catch(e){throw Me(1,e),e}}withWaitingForDebugger(e){try{return fe(Ne,{waitForDebugger:e}),this}catch(e){throw Me(1,e),e}}withStartupMemoryCache(e){try{return fe(Ne,{startupMemoryCache:e}),this}catch(e){throw Me(1,e),e}}withConfig(e){try{return fe(Ne,e),this}catch(e){throw Me(1,e),e}}withConfigSrc(e){try{return e&&"string"==typeof e||Ce(!1,"must be file path or URL"),me(Ue,{configSrc:e}),this}catch(e){throw Me(1,e),e}}withVirtualWorkingDirectory(e){try{return e&&"string"==typeof e||Ce(!1,"must be directory path"),this.virtualWorkingDirectory=e,this}catch(e){throw Me(1,e),e}}withEnvironmentVariable(e,t){try{const o={};return o[e]=t,fe(Ne,{environmentVariables:o}),this}catch(e){throw Me(1,e),e}}withEnvironmentVariables(e){try{return e&&"object"==typeof e||Ce(!1,"must be dictionary object"),fe(Ne,{environmentVariables:e}),this}catch(e){throw Me(1,e),e}}withDiagnosticTracing(e){try{return"boolean"!=typeof e&&Ce(!1,"must be boolean"),fe(Ne,{diagnosticTracing:e}),this}catch(e){throw Me(1,e),e}}withDebugging(e){try{return e&&"number"==typeof e||Ce(!1,"must be number"),fe(Ne,{debugLevel:e}),this}catch(e){throw Me(1,e),e}}withApplicationArguments(...e){try{return e&&Array.isArray(e)||Ce(!1,"must be array of strings"),this.applicationArguments=e,this}catch(e){throw Me(1,e),e}}withRuntimeOptions(e){try{return e&&Array.isArray(e)||Ce(!1,"must be array of strings"),fe(Ne,{runtimeOptions:e}),this}catch(e){throw Me(1,e),e}}withMainAssembly(e){try{return fe(Ne,{mainAssemblyName:e}),this}catch(e){throw Me(1,e),e}}withApplicationArgumentsFromQuery(){try{if(!globalThis.window)throw new Error("Missing window to the query parameters from");if(void 0===globalThis.URLSearchParams)throw new Error("URLSearchParams is supported");const e=new URLSearchParams(window.location.search).getAll("arg");return this.withApplicationArguments(...e)}catch(e){throw Me(1,e),e}}withApplicationEnvironment(e){try{return fe(Ne,{applicationEnvironment:e}),this}catch(e){throw Me(1,e),e}}withApplicationCulture(e){try{return fe(Ne,{applicationCulture:e}),this}catch(e){throw Me(1,e),e}}withResourceLoader(e){try{return je.loadBootResource=e,this}catch(e){throw Me(1,e),e}}async create(){try{if(this.instance||(_e&&Ue.config.forwardConsoleLogsToWS&&void 0!==globalThis.WebSocket&&m("main",globalThis.console,globalThis.location.origin),Ue||Ce(!1,"Null moduleConfig"),Ue.config||Ce(!1,"Null moduleConfig.config"),await Pe(Ue),this.instance=De.api),this.virtualWorkingDirectory){const e=this.instance.Module.FS,t=e.stat(this.virtualWorkingDirectory);t&&e.isDir(t.mode)||Ce(!1,`Could not find working directory ${this.virtualWorkingDirectory}`),e.chdir(this.virtualWorkingDirectory)}return this.instance}catch(e){throw Me(1,e),e}}async run(){try{if(Ue.config||Ce(!1,"Null moduleConfig.config"),this.instance||await this.create(),Ue.config.mainAssemblyName||Ce(!1,"Null moduleConfig.config.mainAssemblyName"),!this.applicationArguments)if(ye){const e=await import("process");this.applicationArguments=e.argv.slice(2)}else this.applicationArguments=[];return this.instance.runMainAndExit(Ue.config.mainAssemblyName,this.applicationArguments)}catch(e){throw Me(1,e),e}}},Be=Me,Ve=Pe;Ee||"function"==typeof globalThis.URL||Ce(!1,"This browser/engine doesn't support URL API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"),"function"!=typeof globalThis.BigInt64Array&&Ce(!1,"This browser/engine doesn't support BigInt64Array API. Please use a modern version. See also https://aka.ms/dotnet-wasm-features");export{Ve as default,We as dotnet,Be as exit};
+//# sourceMappingURL=dotnet.js.map
diff --git a/_framework/dotnet.js.br b/_framework/dotnet.js.br
new file mode 100644
index 0000000..45af789
Binary files /dev/null and b/_framework/dotnet.js.br differ
diff --git a/_framework/dotnet.js.gz b/_framework/dotnet.js.gz
new file mode 100644
index 0000000..1c65c22
Binary files /dev/null and b/_framework/dotnet.js.gz differ
diff --git a/_framework/dotnet.native.8.0.7.o8z0k8deif.js b/_framework/dotnet.native.8.0.7.o8z0k8deif.js
new file mode 100644
index 0000000..e37320e
--- /dev/null
+++ b/_framework/dotnet.native.8.0.7.o8z0k8deif.js
@@ -0,0 +1,17 @@
+
+var createDotnetRuntime = (() => {
+ var _scriptDir = import.meta.url;
+
+ return (
+async function(createDotnetRuntime = {}) {
+
+var Module=typeof createDotnetRuntime!="undefined"?createDotnetRuntime:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});if(_nativeModuleLoaded)throw new Error("Native module already loaded");_nativeModuleLoaded=true;createDotnetRuntime=Module=createDotnetRuntime(Module);Module["getWasmIndirectFunctionTable"]=function(){return wasmTable};Module["getMemory"]=function(){return wasmMemory};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){const{createRequire:createRequire}=await import("module");var require=createRequire(import.meta.url);var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=require("url").fileURLToPath(new URL("./",import.meta.url))}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof clearTimeout=="undefined"){globalThis.clearTimeout=id=>{}}if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err("exiting due to exception: "+toLog)}quit(status)});throw toThrow}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;if(Module["locateFile"]){wasmBinaryFile="dotnet.native.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}}else{wasmBinaryFile=new URL("dotnet.native.wasm",import.meta.url).href}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(binaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(binaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(binaryFile)})}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(function(binary){return WebAssembly.instantiate(binary,imports)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateMemoryViews();wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size);return address}function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment}function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fadvise64(fd,offset,len,advice){return 0}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstatfs64(fd,size,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return ___syscall_statfs64(0,size,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var MAX_INT53=9007199254740992;var MIN_INT53=-9007199254740992;function bigintToI53Checked(num){return numMAX_INT53?NaN:Number(num)}function ___syscall_ftruncate64(fd,length){try{length=bigintToI53Checked(length);if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}var __MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var __MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];function __yday_from_date(date){var isLeapYear=__isLeapYear(date.getFullYear());var monthDaysCumulative=isLeapYear?__MONTH_DAYS_LEAP_CUMULATIVE:__MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday}function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=__yday_from_date(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,off,allocated,addr){try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,off,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset){try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}FS.munmap(stream)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function __tzset_js(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function _abort(){abort("")}var DOTNETENTROPY={getBatchedRandomValues:function(buffer,bufferLength){const batchedQuotaMax=65536;const needTempBuf=typeof SharedArrayBuffer!=="undefined"&&Module.HEAPU8.buffer instanceof SharedArrayBuffer;const buf=needTempBuf?new ArrayBuffer(bufferLength):Module.HEAPU8.buffer;const offset=needTempBuf?0:buffer;for(let i=0;i{var t=process.hrtime();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=()=>performance.now();function _emscripten_get_now_res(){if(ENVIRONMENT_IS_NODE){return 1}else if(typeof dateNow!="undefined"){return 1e3}else return 1e3}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _emscripten_glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindTransformFeedback(target,id){GLctx["bindTransformFeedback"](target,GL.transformFeedbacks[id])}function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _emscripten_glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _emscripten_glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _emscripten_glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glClientWaitSync(sync,flags,timeout){timeout=Number(timeout);return GLctx.clientWaitSync(GL.syncs[sync],flags,timeout)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}return 0}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i>2]=result[i]}}else{HEAP32[params>>2]=result}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i>2]=result[i]}}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}function _emscripten_glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeout){timeout=Number(timeout);GLctx.waitSync(GL.syncs[sync],flags,timeout)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_pwrite(fd,iov,iovcnt,offset,pnum){try{offset=bigintToI53Checked(offset);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt,offset);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){try{offset=bigintToI53Checked(offset);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var DOTNET={setup:function setup(linkerSetup){const pthreadReplacements={};const dotnet_replacements={fetch:globalThis.fetch,require:require,updateMemoryViews:updateMemoryViews,pthreadReplacements:pthreadReplacements,scriptDirectory:scriptDirectory,noExitRuntime:noExitRuntime};const ENVIRONMENT_IS_PTHREAD=false;Module.__dotnet_runtime.passEmscriptenInternals({isPThread:ENVIRONMENT_IS_PTHREAD,quit_:quit_,ExitStatus:ExitStatus,...linkerSetup});Module.__dotnet_runtime.initializeReplacements(dotnet_replacements);Module.__dotnet_runtime.configureEmscriptenStartup(Module);updateMemoryViews=dotnet_replacements.updateMemoryViews;noExitRuntime=dotnet_replacements.noExitRuntime;fetch=dotnet_replacements.fetch;require=dotnet_replacements.require;_scriptDir=__dirname=scriptDirectory=dotnet_replacements.scriptDirectory}};function _mono_interp_flush_jitcall_queue(){return{runtime_idx:12}}function _mono_interp_invoke_wasm_jit_call_trampoline(){return{runtime_idx:11}}function _mono_interp_jit_wasm_entry_trampoline(){return{runtime_idx:9}}function _mono_interp_jit_wasm_jit_call_trampoline(){return{runtime_idx:10}}function _mono_interp_record_interp_entry(){return{runtime_idx:8}}function _mono_interp_tier_prepare_jiterpreter(){return{runtime_idx:7}}function _mono_wasm_bind_cs_function(){return{runtime_idx:23}}function _mono_wasm_bind_js_function(){return{runtime_idx:20}}function _mono_wasm_change_case(){return{runtime_idx:26}}function _mono_wasm_change_case_invariant(){return{runtime_idx:25}}function _mono_wasm_compare_string(){return{runtime_idx:27}}function _mono_wasm_create_cs_owned_object_ref(){return{runtime_idx:41}}function _mono_wasm_ends_with(){return{runtime_idx:29}}function _mono_wasm_get_by_index_ref(){return{runtime_idx:38}}function _mono_wasm_get_calendar_info(){return{runtime_idx:31}}function _mono_wasm_get_culture_info(){return{runtime_idx:32}}function _mono_wasm_get_first_day_of_week(){return{runtime_idx:33}}function _mono_wasm_get_first_week_of_year(){return{runtime_idx:34}}function _mono_wasm_get_global_object_ref(){return{runtime_idx:40}}function _mono_wasm_get_object_property_ref(){return{runtime_idx:36}}function _mono_wasm_index_of(){return{runtime_idx:30}}function _mono_wasm_invoke_bound_function(){return{runtime_idx:21}}function _mono_wasm_invoke_import(){return{runtime_idx:22}}function _mono_wasm_invoke_js_blazor(){return{runtime_idx:44}}function _mono_wasm_invoke_js_with_args_ref(){return{runtime_idx:35}}function _mono_wasm_marshal_promise(){return{runtime_idx:24}}function _mono_wasm_release_cs_owned_object(){return{runtime_idx:19}}function _mono_wasm_schedule_timer(){return{runtime_idx:0}}function _mono_wasm_set_by_index_ref(){return{runtime_idx:39}}function _mono_wasm_set_entrypoint_breakpoint(){return{runtime_idx:17}}function _mono_wasm_set_object_property_ref(){return{runtime_idx:37}}function _mono_wasm_starts_with(){return{runtime_idx:28}}function _mono_wasm_trace_logger(){return{runtime_idx:16}}function _mono_wasm_typed_array_from_ref(){return{runtime_idx:43}}function _mono_wasm_typed_array_to_array_ref(){return{runtime_idx:42}}function _schedule_background_exec(){return{runtime_idx:6}}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}function getCFunc(ident){var func=Module["_"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;itype==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}function uleb128Encode(n,target){if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}}function sigToWasmTypes(sig){var typeNames={"i":"i32","j":"i32","f":"f32","d":"f64","p":"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function updateTableMap(offset,count){if(functionsInTableMap){for(var i=offset;i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
+
+
+ return createDotnetRuntime.ready
+}
+
+);
+})();
+export default createDotnetRuntime;
+var fetch = fetch || undefined; var require = require || undefined; var __dirname = __dirname || ''; var _nativeModuleLoaded = false;
diff --git a/_framework/dotnet.native.8.0.7.o8z0k8deif.js.br b/_framework/dotnet.native.8.0.7.o8z0k8deif.js.br
new file mode 100644
index 0000000..c0899ea
Binary files /dev/null and b/_framework/dotnet.native.8.0.7.o8z0k8deif.js.br differ
diff --git a/_framework/dotnet.native.8.0.7.o8z0k8deif.js.gz b/_framework/dotnet.native.8.0.7.o8z0k8deif.js.gz
new file mode 100644
index 0000000..4d9292e
Binary files /dev/null and b/_framework/dotnet.native.8.0.7.o8z0k8deif.js.gz differ
diff --git a/dotnet.wasm b/_framework/dotnet.native.wasm
similarity index 54%
rename from dotnet.wasm
rename to _framework/dotnet.native.wasm
index a502578..c19214f 100755
Binary files a/dotnet.wasm and b/_framework/dotnet.native.wasm differ
diff --git a/_framework/dotnet.native.wasm.br b/_framework/dotnet.native.wasm.br
new file mode 100644
index 0000000..cffde55
Binary files /dev/null and b/_framework/dotnet.native.wasm.br differ
diff --git a/_framework/dotnet.native.wasm.gz b/_framework/dotnet.native.wasm.gz
new file mode 100644
index 0000000..bf9919f
Binary files /dev/null and b/_framework/dotnet.native.wasm.gz differ
diff --git a/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js
new file mode 100755
index 0000000..8b33ada
--- /dev/null
+++ b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js
@@ -0,0 +1,4 @@
+//! Licensed to the .NET Foundation under one or more agreements.
+//! The .NET Foundation licenses this file to you under the MIT license.
+var e="8.0.7";let t,n;const r="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,o="function"==typeof importScripts,a="object"==typeof window||o&&!r,s=!a&&!r&&!o;let i,c=null,l=null,u=null,p=!1,d=!0,_=!0,f=!1,m=!1,h=!1;function b(e){i=e.isPThread,p=e.linkerDisableLegacyJsInterop,d=e.linkerWasmEnableSIMD,_=e.linkerWasmEnableEH,f=e.linkerEnableAotProfiler,m=e.linkerEnableBrowserProfiler,l.quit=e.quit_,l.ExitStatus=e.ExitStatus,l.moduleGitHash=e.gitHash}function g(e){if(h)throw new Error("Runtime module already loaded");h=!0,t=e.module,n=e.internal,l=e.runtimeHelpers,u=e.loaderHelpers,c=e.api,Object.assign(l,{gitHash:"2aade6beb02ea367fd97c4070a4198802fe61c03",allAssetsInMemory:y(),dotnetReady:y(),afterInstantiateWasm:y(),beforePreInit:y(),afterPreInit:y(),afterPreRun:y(),beforeOnRuntimeInitialized:y(),afterOnRuntimeInitialized:y(),afterPostRun:y(),mono_wasm_exit:()=>{throw new Error("Mono shutdown")},abort:e=>{throw e}}),Object.assign(e.module.config,{}),Object.assign(e.api,{Module:e.module,...e.module}),Object.assign(e.api,{INTERNAL:e.internal})}function y(e,t){return u.createPromiseController(e,t)}function w(e,t){if(e)return;const n="Assert failed: "+("function"==typeof t?t():t),r=new Error(n);l.abort(r)}const S=0,k=0,v=0,E=0,U=0,I=-1,x=0,T=0,j=0;function A(e){return null==e}var R;!function(e){e[e.None=0]="None",e[e.Void=1]="Void",e[e.Discard=2]="Discard",e[e.Boolean=3]="Boolean",e[e.Byte=4]="Byte",e[e.Char=5]="Char",e[e.Int16=6]="Int16",e[e.Int32=7]="Int32",e[e.Int52=8]="Int52",e[e.BigInt64=9]="BigInt64",e[e.Double=10]="Double",e[e.Single=11]="Single",e[e.IntPtr=12]="IntPtr",e[e.JSObject=13]="JSObject",e[e.Object=14]="Object",e[e.String=15]="String",e[e.Exception=16]="Exception",e[e.DateTime=17]="DateTime",e[e.DateTimeOffset=18]="DateTimeOffset",e[e.Nullable=19]="Nullable",e[e.Task=20]="Task",e[e.Array=21]="Array",e[e.ArraySegment=22]="ArraySegment",e[e.Span=23]="Span",e[e.Action=24]="Action",e[e.Function=25]="Function",e[e.JSException=26]="JSException"}(R||(R={}));var L=!1;const C=[],$=32768;let N,D;const B=BigInt("9223372036854775807"),O=BigInt("-9223372036854775808");function M(){N||(N=t._malloc($),D=N),C.push(D)}function F(e,t,n){if(!Number.isSafeInteger(e))throw new Error(`Assert failed: Value is not an integer: ${e} (${typeof e})`);if(!(e>=t&&e<=n))throw new Error(`Assert failed: Overflow: value ${e} is out of ${t} ${n} range`)}function P(e,t){Ee().fill(0,e,e+t)}function z(e,n){const r=!!n;"number"==typeof n&&F(n,0,1),t.HEAP32[e>>>2]=r?1:0}function V(e,n){F(n,0,255),t.HEAPU8[e]=n}function H(e,n){F(n,0,65535),t.HEAPU16[e>>>1]=n}function W(e,t,n){F(n,0,65535),e[t>>>1]=n}function G(e,n){t.HEAPU32[e>>>2]=n}function q(e,n){F(n,0,4294967295),t.HEAPU32[e>>>2]=n}function J(e,n){F(n,-128,127),t.HEAP8[e]=n}function Y(e,n){F(n,-32768,32767),t.HEAP16[e>>>1]=n}function X(e,n){t.HEAP32[e>>>2]=n}function Z(e,n){F(n,-2147483648,2147483647),t.HEAP32[e>>>2]=n}function K(e){if(0!==e)switch(e){case 1:throw new Error("value was not an integer");case 2:throw new Error("value out of range");default:throw new Error("unknown internal error")}}function Q(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);K(St.mono_wasm_f64_to_i52(e,t))}function ee(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);if(!(t>=0))throw new Error("Assert failed: Can't convert negative Number into UInt64");K(St.mono_wasm_f64_to_u52(e,t))}function te(e,n){if("bigint"!=typeof n)throw new Error(`Assert failed: Value is not an bigint: ${n} (${typeof n})`);if(!(n>=O&&n<=B))throw new Error(`Assert failed: Overflow: value ${n} is out of ${O} ${B} range`);t.HEAP64[e>>>3]=n}function ne(e,n){if("number"!=typeof n)throw new Error(`Assert failed: Value is not a Number: ${n} (${typeof n})`);t.HEAPF32[e>>>2]=n}function re(e,n){if("number"!=typeof n)throw new Error(`Assert failed: Value is not a Number: ${n} (${typeof n})`);t.HEAPF64[e>>>3]=n}function oe(e){return!!t.HEAP32[e>>>2]}function ae(e){return t.HEAPU8[e]}function se(e){return t.HEAPU16[e>>>1]}function ie(e){return t.HEAPU32[e>>>2]}function ce(e,t){return e[t>>>2]}function le(e){return St.mono_wasm_get_i32_unaligned(e)}function ue(e){return St.mono_wasm_get_i32_unaligned(e)>>>0}function pe(e){return t.HEAP8[e]}function de(e){return t.HEAP16[e>>>1]}function _e(e){return t.HEAP32[e>>>2]}function fe(e){const t=St.mono_wasm_i52_to_f64(e,l._i52_error_scratch_buffer);return K(_e(l._i52_error_scratch_buffer)),t}function me(e){const t=St.mono_wasm_u52_to_f64(e,l._i52_error_scratch_buffer);return K(_e(l._i52_error_scratch_buffer)),t}function he(e){return t.HEAP64[e>>>3]}function be(e){return t.HEAPF32[e>>>2]}function ge(e){return t.HEAPF64[e>>>3]}function ye(e){const n=t._malloc(e.length);return new Uint8Array(Ee().buffer,n,e.length).set(e),n}function we(){return t.HEAP8}function Se(){return t.HEAP16}function ke(){return t.HEAP32}function ve(){return t.HEAP64}function Ee(){return t.HEAPU8}function Ue(){return t.HEAPU16}function Ie(){return t.HEAPU32}function xe(){return t.HEAPF32}function Te(){return t.HEAPF64}const je=8192;let Ae=null,Re=null,Le=0;const Ce=[],$e=[];function Ne(e,n){if(e<=0)throw new Error("capacity >= 1");const r=4*(e|=0),o=t._malloc(r);if(o%4!=0)throw new Error("Malloc returned an unaligned offset");return P(o,r),new WasmRootBufferImpl(o,e,!0,n)}function De(e){let t;if(!e)throw new Error("address must be a location in the native heap");return $e.length>0?(t=$e.pop(),t._set_address(e)):t=new Fe(e),t}function Be(e=void 0){let t;if(Ce.length>0)t=Ce.pop();else{const e=function(){if(A(Ae)||!Re){Ae=Ne(je,"js roots"),Re=new Int32Array(je),Le=je;for(let e=0;e>>2,this.__count=t,this.length=t,this.__handle=St.mono_wasm_register_root(e,o,r||"noname"),this.__ownsAllocation=n}_throw_index_out_of_range(){throw new Error("index out of range")}_check_in_range(e){(e>=this.__count||e<0)&&this._throw_index_out_of_range()}get_address(e){return this._check_in_range(e),this.__offset+4*e}get_address_32(e){return this._check_in_range(e),this.__offset32+e}get(e){this._check_in_range(e);const t=this.get_address_32(e);return Ie()[t]}set(e,t){const n=this.get_address(e);return St.mono_wasm_write_managed_pointer_unsafe(n,t),t}copy_value_from_address(e,t){const n=this.get_address(e);St.mono_wasm_copy_managed_pointer(n,t)}_unsafe_get(e){return Ie()[this.__offset32+e]}_unsafe_set(e,t){const n=this.__offset+e;St.mono_wasm_write_managed_pointer_unsafe(n,t)}clear(){this.__offset&&P(this.__offset,4*this.__count)}release(){this.__offset&&this.__ownsAllocation&&(St.mono_wasm_deregister_root(this.__offset),P(this.__offset,4*this.__count),t._free(this.__offset)),this.__handle=this.__offset=this.__count=this.__offset32=0}toString(){return`[root buffer @${this.get_address(0)}, size ${this.__count} ]`}}class Me{constructor(e,t){this.__buffer=e,this.__index=t}get_address(){return this.__buffer.get_address(this.__index)}get_address_32(){return this.__buffer.get_address_32(this.__index)}get address(){return this.__buffer.get_address(this.__index)}get(){return this.__buffer._unsafe_get(this.__index)}set(e){const t=this.__buffer.get_address(this.__index);return St.mono_wasm_write_managed_pointer_unsafe(t,e),e}copy_from(e){const t=e.address,n=this.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.address,n=e.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.address;St.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.address;St.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){const e=this.__buffer.get_address_32(this.__index);Ie()[e]=0}release(){if(!this.__buffer)throw new Error("No buffer");var e;Ce.length>128?(void 0!==(e=this.__index)&&(Ae.set(e,0),Re[Le]=e,Le++),this.__buffer=null,this.__index=0):(this.set(0),Ce.push(this))}toString(){return`[root @${this.address}]`}}class Fe{constructor(e){this.__external_address=U,this.__external_address_32=0,this._set_address(e)}_set_address(e){this.__external_address=e,this.__external_address_32=e>>>2}get address(){return this.__external_address}get_address(){return this.__external_address}get_address_32(){return this.__external_address_32}get(){return Ie()[this.__external_address_32]}set(e){return St.mono_wasm_write_managed_pointer_unsafe(this.__external_address,e),e}copy_from(e){const t=e.address,n=this.__external_address;St.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.__external_address,n=e.address;St.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.__external_address;St.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.__external_address;St.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){Ie()[this.__external_address>>>2]=0}release(){$e.length<128&&$e.push(this)}toString(){return`[external root @${this.address}]`}}const Pe=new Map,ze="";let Ve;const He=new Map;let We,Ge,qe,Je,Ye=0,Xe=null,Ze=0;function Ke(e){if(void 0===Je){const n=new Uint8Array(2*e.length);return t.stringToUTF8Array(e,n,0,2*e.length),n}return Je.encode(e)}function Qe(e){const n=Ee();return function(e,n,r){const o=n+r;let a=n;for(;e[a]&&!(a>=o);)++a;if(a-n<=16)return t.UTF8ArrayToString(e,n,r);if(void 0===qe)return t.UTF8ArrayToString(e,n,r);const s=it(e,n,a);return qe.decode(s)}(n,e,n.length-e)}function et(e,t){if(We){const n=it(Ee(),e,t);return We.decode(n)}return tt(e,t)}function tt(e,t){let n="";const r=Ue();for(let o=e;o>>1];n+=String.fromCharCode(e)}return n}function nt(e,t,n){const r=Ue(),o=n.length;for(let a=0;a=t));a++);}function rt(e){if(e.value===E)return null;const t=Ve+0,n=Ve+4,r=Ve+8;let o;St.mono_wasm_string_get_data_ref(e.address,t,n,r);const a=Ie(),s=ce(a,n),i=ce(a,t),c=ce(a,r);if(c&&(o=He.get(e.value)),void 0===o&&(s&&i?(o=et(i,i+s),c&&He.set(e.value,o)):o=ze),void 0===o)throw new Error(`internal error when decoding string at location ${e.value}`);return o}function ot(e,t){if(t.clear(),null!==e)if("symbol"==typeof e)at(e,t);else{if("string"!=typeof e)throw new Error("Expected string argument, got "+typeof e);if(0===e.length)at(e,t);else{if(e.length<=256){const n=Pe.get(e);if(n)return void t.set(n)}st(e,t)}}}function at(e,t){let n;if("symbol"==typeof e?(n=e.description,"string"!=typeof n&&(n=Symbol.keyFor(e)),"string"!=typeof n&&(n="")):"string"==typeof e&&(n=e),"string"!=typeof n)throw new Error(`Argument to stringToInternedMonoStringRoot must be a string but was ${e}`);if(0===n.length&&Ye)return void t.set(Ye);const r=Pe.get(n);r?t.set(r):(st(n,t),function(e,t,n){if(!t.value)throw new Error("null pointer passed to _store_string_in_intern_table");Ze>=8192&&(Xe=null),Xe||(Xe=Ne(8192,"interned strings"),Ze=0);const r=Xe,o=Ze++;if(St.mono_wasm_intern_string_ref(t.address),!t.value)throw new Error("mono_wasm_intern_string_ref produced a null pointer");Pe.set(e,t.value),He.set(t.value,e),0!==e.length||Ye||(Ye=t.value),r.copy_value_from_address(o,t.address)}(n,t))}function st(e,n){const r=2*(e.length+1),o=t._malloc(r);nt(o,o+r,e),St.mono_wasm_string_from_utf16_ref(o,e.length,n.address),t._free(o)}function it(e,t,n){return e.buffer,e.subarray(t,n)}let ct="MONO_WASM: ";function lt(e,...t){l.diagnosticTracing&&console.debug(ct+e,...t)}function ut(e,...t){console.info(ct+e,...t)}function pt(e,...t){console.warn(ct+e,...t)}function dt(e,...t){t&&t.length>0&&t[0]&&"object"==typeof t[0]&&t[0].silent||console.error(ct+e,...t)}const _t=new Map,ft=[];function mt(e){try{if(0==_t.size)return e;const t=e;for(let n=0;n{const n=t.find((e=>"object"==typeof e&&void 0!==e.replaceSection));if(void 0===n)return e;const r=n.funcNum,o=n.replaceSection,a=_t.get(Number(r));return void 0===a?e:e.replace(o,`${a} (${o})`)}));if(r!==t)return r}return t}catch(t){return console.debug(`failed to symbolicate: ${t}`),e}}function ht(e){let t=e;return t&&t.stack||(t=new Error(t?""+t:"Unknown error")),mt(t.stack)}function bt(){return[..._t.values()]}ft.push(/at (?[^:()]+:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)((?![^)a-fA-F\d])|$)/),ft.push(/(?:WASM \[[\da-zA-Z]+\], (?function #(?[\d]+) \(''\)))/),ft.push(/(?[a-z]+:\/\/[^ )]*:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)/),ft.push(/(?<[^ >]+>[.:]wasm-function\[(?[0-9]+)\])/);const gt=[[!0,"mono_wasm_array_get_ref","void",["number","number","number"]],[!0,"mono_wasm_obj_array_new_ref","void",["number","number"]],[!0,"mono_wasm_obj_array_set_ref","void",["number","number","number"]],[!0,"mono_wasm_try_unbox_primitive_and_get_type_ref","number",["number","number","number"]],[!0,"mono_wasm_box_primitive_ref","void",["number","number","number","number"]],[!0,"mono_wasm_string_array_new_ref","void",["number","number"]],[!0,"mono_wasm_typed_array_new_ref","void",["number","number","number","number","number"]],[!0,"mono_wasm_get_delegate_invoke_ref","number",["number"]],[!0,"mono_wasm_get_type_name","string",["number"]],[!0,"mono_wasm_get_type_aqn","string",["number"]],[!0,"mono_wasm_obj_array_new","number",["number"]],[!0,"mono_wasm_obj_array_set","void",["number","number","number"]],[!0,"mono_wasm_array_length_ref","number",["number"]]],yt=[[!0,"mono_wasm_register_root","number",["number","number","string"]],[!0,"mono_wasm_deregister_root",null,["number"]],[!0,"mono_wasm_string_get_data_ref",null,["number","number","number","number"]],[!0,"mono_wasm_set_is_debugger_attached","void",["bool"]],[!0,"mono_wasm_send_dbg_command","bool",["number","number","number","number","number"]],[!0,"mono_wasm_send_dbg_command_with_parms","bool",["number","number","number","number","number","number","string"]],[!0,"mono_wasm_setenv",null,["string","string"]],[!0,"mono_wasm_parse_runtime_options",null,["number","number"]],[!0,"mono_wasm_strdup","number",["string"]],[!0,"mono_background_exec",null,[]],[!0,"mono_wasm_execute_timer",null,[]],[!0,"mono_wasm_load_icu_data","number",["number"]],[!1,"mono_wasm_add_assembly","number",["string","number","number"]],[!0,"mono_wasm_add_satellite_assembly","void",["string","string","number","number"]],[!1,"mono_wasm_load_runtime",null,["string","number"]],[!0,"mono_wasm_change_debugger_log_level","void",["number"]],[!0,"mono_wasm_get_corlib","number",[]],[!0,"mono_wasm_assembly_load","number",["string"]],[!0,"mono_wasm_assembly_find_class","number",["number","string","string"]],[!0,"mono_wasm_runtime_run_module_cctor","void",["number"]],[!0,"mono_wasm_assembly_find_method","number",["number","string","number"]],[!1,"mono_wasm_invoke_method_ref","void",["number","number","number","number","number"]],[!0,"mono_wasm_string_from_utf16_ref","void",["number","number","number"]],[!0,"mono_wasm_intern_string_ref","void",["number"]],[!0,"mono_wasm_assembly_get_entry_point","number",["number","number"]],[!0,"mono_wasm_class_get_type","number",["number"]],[!1,"mono_wasm_exit","void",["number"]],[!1,"mono_wasm_abort","void",[]],[!0,"mono_wasm_getenv","number",["string"]],[!0,"mono_wasm_set_main_args","void",["number","number"]],[!1,"mono_wasm_enable_on_demand_gc","void",["number"]],[()=>!f,"mono_wasm_profiler_init_aot","void",["string"]],[()=>!m,"mono_wasm_profiler_init_aot","void",["string"]],[!0,"mono_wasm_profiler_init_browser","void",["number"]],[!1,"mono_wasm_exec_regression","number",["number","string"]],[!1,"mono_wasm_invoke_method_bound","number",["number","number","number"]],[!0,"mono_wasm_write_managed_pointer_unsafe","void",["number","number"]],[!0,"mono_wasm_copy_managed_pointer","void",["number","number"]],[!0,"mono_wasm_i52_to_f64","number",["number","number"]],[!0,"mono_wasm_u52_to_f64","number",["number","number"]],[!0,"mono_wasm_f64_to_i52","number",["number","number"]],[!0,"mono_wasm_f64_to_u52","number",["number","number"]],[!0,"mono_wasm_method_get_name","number",["number"]],[!0,"mono_wasm_method_get_full_name","number",["number"]],[!0,"mono_wasm_gc_lock","void",[]],[!0,"mono_wasm_gc_unlock","void",[]],[!0,"mono_wasm_get_i32_unaligned","number",["number"]],[!0,"mono_wasm_get_f32_unaligned","number",["number"]],[!0,"mono_wasm_get_f64_unaligned","number",["number"]],[!0,"mono_jiterp_trace_bailout","void",["number"]],[!0,"mono_jiterp_get_trace_bailout_count","number",["number"]],[!0,"mono_jiterp_value_copy","void",["number","number","number"]],[!0,"mono_jiterp_get_member_offset","number",["number"]],[!0,"mono_jiterp_encode_leb52","number",["number","number","number"]],[!0,"mono_jiterp_encode_leb64_ref","number",["number","number","number"]],[!0,"mono_jiterp_encode_leb_signed_boundary","number",["number","number","number"]],[!0,"mono_jiterp_write_number_unaligned","void",["number","number","number"]],[!0,"mono_jiterp_type_is_byref","number",["number"]],[!0,"mono_jiterp_get_size_of_stackval","number",[]],[!0,"mono_jiterp_parse_option","number",["string"]],[!0,"mono_jiterp_get_options_as_json","number",[]],[!0,"mono_jiterp_get_options_version","number",[]],[!0,"mono_jiterp_adjust_abort_count","number",["number","number"]],[!0,"mono_jiterp_register_jit_call_thunk","void",["number","number"]],[!0,"mono_jiterp_type_get_raw_value_size","number",["number"]],[!0,"mono_jiterp_update_jit_call_dispatcher","void",["number"]],[!0,"mono_jiterp_get_signature_has_this","number",["number"]],[!0,"mono_jiterp_get_signature_return_type","number",["number"]],[!0,"mono_jiterp_get_signature_param_count","number",["number"]],[!0,"mono_jiterp_get_signature_params","number",["number"]],[!0,"mono_jiterp_type_to_ldind","number",["number"]],[!0,"mono_jiterp_type_to_stind","number",["number"]],[!0,"mono_jiterp_imethod_to_ftnptr","number",["number"]],[!0,"mono_jiterp_debug_count","number",[]],[!0,"mono_jiterp_get_trace_hit_count","number",["number"]],[!0,"mono_jiterp_get_polling_required_address","number",[]],[!0,"mono_jiterp_get_rejected_trace_count","number",[]],[!0,"mono_jiterp_boost_back_branch_target","void",["number"]],[!0,"mono_jiterp_is_imethod_var_address_taken","number",["number","number"]],[!0,"mono_jiterp_get_opcode_value_table_entry","number",["number"]],[!0,"mono_jiterp_get_simd_intrinsic","number",["number","number"]],[!0,"mono_jiterp_get_simd_opcode","number",["number","number"]],[!0,"mono_jiterp_get_arg_offset","number",["number","number","number"]],[!0,"mono_jiterp_get_opcode_info","number",["number","number"]],[!0,"mono_wasm_is_zero_page_reserved","number",[]],[!0,"mono_jiterp_is_special_interface","number",["number"]],...gt],wt={};var St=wt;const kt=wt,vt=wt,Et=["void","number",null];function Ut(e,n,r,o){let a=void 0===o&&Et.indexOf(n)>=0&&(!r||r.every((e=>Et.indexOf(e)>=0)))&&t.asm?t.asm[e]:void 0;if(a&&r&&a.length!==r.length&&(dt(`argument count mismatch for cwrap ${e}`),a=void 0),"function"!=typeof a&&(a=t.cwrap(e,n,r,o)),"function"!=typeof a)throw new Error(`cwrap ${e} not found or not a function`);return a}function It(e,t,n){const r=function(e,t,n){let r,o="number"==typeof t?t:0;r="number"==typeof n?o+n:e.length-o;const a={read:function(){if(o>=r)return null;const t=e[o];return o+=1,t}};return Object.defineProperty(a,"eof",{get:function(){return o>=r},configurable:!0,enumerable:!0}),a}(e,t,n);let o="",a=0,s=0,i=0,c=0,l=0,u=0;for(;a=r.read(),s=r.read(),i=r.read(),null!==a;)null===s&&(s=0,l+=1),null===i&&(i=0,l+=1),u=a<<16|s<<8|i<<0,c=(16777215&u)>>18,o+=xt[c],c=(262143&u)>>12,o+=xt[c],l<2&&(c=(4095&u)>>6,o+=xt[c]),2===l?o+="==":1===l?o+="=":(c=(63&u)>>0,o+=xt[c]);return o}const xt=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],Tt=new Map;Tt.remove=function(e){const t=this.get(e);return this.delete(e),t};let jt,At,Rt,Lt={},Ct=0,$t=-1;function mono_wasm_runtime_ready(){if(n.mono_wasm_runtime_is_ready=l.mono_wasm_runtime_is_ready=!0,Ct=0,Lt={},$t=-1,globalThis.dotnetDebugger)debugger}function mono_wasm_fire_debugger_agent_message_with_data_to_pause(e){console.assert(!0,`mono_wasm_fire_debugger_agent_message_with_data ${e}`);debugger}function Nt(e){e.length>$t&&(jt&&t._free(jt),$t=Math.max(e.length,$t,256),jt=t._malloc($t));const n=atob(e),r=Ee();for(let e=0;ee.value)),e;if(void 0===t.dimensionsDetails||1===t.dimensionsDetails.length)return e=t.items.map((e=>e.value)),e}const n={};return Object.keys(t).forEach((e=>{const r=t[e];void 0!==r.get?Object.defineProperty(n,r.name,{get:()=>Bt(r.get.id,r.get.commandSet,r.get.command,r.get.buffer),set:function(e){return Dt(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),!0}}):void 0!==r.set?Object.defineProperty(n,r.name,{get:()=>r.value,set:function(e){return Dt(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),!0}}):n[r.name]=r.value})),n}(t,n);const o=null!=e.arguments?e.arguments.map((e=>JSON.stringify(e.value))):[],a=`const fn = ${e.functionDeclaration}; return fn.apply(proxy, [${o}]);`,s=new Function("proxy",a)(r);if(void 0===s)return{type:"undefined"};if(Object(s)!==s)return"object"==typeof s&&null==s?{type:typeof s,subtype:`${s}`,value:null}:{type:typeof s,description:`${s}`,value:`${s}`};if(e.returnByValue&&null==s.subtype)return{type:"object",value:s};if(Object.getPrototypeOf(s)==Array.prototype){const e=Gt(s);return{type:"object",subtype:"array",className:"Array",description:`Array(${s.length})`,objectId:e}}return void 0!==s.value||void 0!==s.subtype?s:s==r?{type:"object",className:"Object",description:"Object",objectId:t}:{type:"object",className:"Object",description:"Object",objectId:Gt(s)}}function Wt(e,t={}){return function(e,t){if(!(e in Lt))throw new Error(`Could not find any object with id ${e}`);const n=Lt[e],r=Object.getOwnPropertyDescriptors(n);t.accessorPropertiesOnly&&Object.keys(r).forEach((e=>{void 0===r[e].get&&Reflect.deleteProperty(r,e)}));const o=[];return Object.keys(r).forEach((e=>{let t;const n=r[e];t="object"==typeof n.value?Object.assign({name:e},n):void 0!==n.value?{name:e,value:Object.assign({type:typeof n.value,description:""+n.value},n)}:void 0!==n.get?{name:e,get:{className:"Function",description:`get ${e} () {}`,type:"function"}}:{name:e,value:{type:"symbol",value:"",description:""}},o.push(t)})),{__value_as_json_string__:JSON.stringify(o)}}(`dotnet:cfo_res:${e}`,t)}function Gt(e){const t="dotnet:cfo_res:"+Ct++;return Lt[t]=e,t}function qt(e){e in Lt&&delete Lt[e]}function Jt(){if(l.enablePerfMeasure)return globalThis.performance.now()}function Yt(e,t,n){if(l.enablePerfMeasure&&e){const r=a?{start:e}:{startTime:e},o=n?`${t}${n} `:t;globalThis.performance.measure(o,r)}}const Xt=[],Zt=new Map,Kt=new Map,Qt=new Map,en=Symbol.for("wasm bound_cs_function"),tn=Symbol.for("wasm bound_js_function"),nn=Symbol.for("wasm imported_js_function"),rn=16;function on(e){const n=t.stackAlloc(rn*e);return n&&n%8==0||w(!1,"Arg alignment"),hn(an(n,0),R.None),hn(an(n,1),R.None),n}function an(e,t){return e||w(!1,"Null args"),e+t*rn}function sn(e,t){return e||w(!1,"Null signatures"),e+32*t+8}function cn(e){return e||w(!1,"Null sig"),ie(e)}function ln(e){return e||w(!1,"Null sig"),ie(e+16)}function un(e){return e||w(!1,"Null sig"),ie(e+20)}function pn(e){return e||w(!1,"Null sig"),ie(e+24)}function dn(e){return e||w(!1,"Null sig"),ie(e+28)}function _n(e){return e||w(!1,"Null signatures"),_e(e+4)}function fn(e){return e||w(!1,"Null signatures"),_e(e)}function mn(e){return e||w(!1,"Null arg"),ie(e+12)}function hn(e,t){e||w(!1,"Null arg"),q(e+12,t)}function bn(e){return e||w(!1,"Null arg"),ie(e)}function gn(e,t){if(e||w(!1,"Null arg"),"boolean"!=typeof t)throw new Error(`Assert failed: Value is not a Boolean: ${t} (${typeof t})`);V(e,t?1:0)}function yn(e,t){e||w(!1,"Null arg"),q(e,t)}function wn(e,t){e||w(!1,"Null arg"),re(e,t.getTime())}function Sn(e,t){e||w(!1,"Null arg"),re(e,t)}function kn(e){return e||w(!1,"Null arg"),ie(e+4)}function vn(e,t){e||w(!1,"Null arg"),q(e+4,t)}function En(e){return e||w(!1,"Null arg"),ie(e+4)}function Un(e,t){e||w(!1,"Null arg"),q(e+4,t)}function In(e){return e||w(!1,"Null arg"),De(e)}function xn(e){return e||w(!1,"Null arg"),_e(e+8)}function Tn(e,t){e||w(!1,"Null arg"),Z(e+8,t)}class ManagedObject{dispose(){Mr(this,T)}get isDisposed(){return this[Lr]===T}toString(){return`CsObject(gc_handle: ${this[Lr]})`}}class ManagedError extends Error{constructor(e){super(e),this.superStack=Object.getOwnPropertyDescriptor(this,"stack"),Object.defineProperty(this,"stack",{get:this.getManageStack})}getSuperStack(){if(this.superStack){if(void 0!==this.superStack.value)return this.superStack.value;if(void 0!==this.superStack.get)return this.superStack.get.call(this)}return super.stack}getManageStack(){if(this.managed_stack)return this.managed_stack;if(u.is_runtime_running()&&!L){const e=this[Lr];if(e!==T){const t=l.javaScriptExports.get_managed_stack_trace(e);if(t)return this.managed_stack=t+"\n"+this.getSuperStack(),this.managed_stack}}return this.getSuperStack()}dispose(){Mr(this,T)}get isDisposed(){return this[Lr]===T}}function jn(e){return e==R.Byte?1:e==R.Int32?4:e==R.Int52||e==R.Double?8:e==R.String||e==R.Object||e==R.JSObject?rn:-1}class An{constructor(e,t,n){this._pointer=e,this._length=t,this._viewType=n}_unsafe_create_view(){const e=0==this._viewType?new Uint8Array(Ee().buffer,this._pointer,this._length):1==this._viewType?new Int32Array(ke().buffer,this._pointer,this._length):2==this._viewType?new Float64Array(Te().buffer,this._pointer,this._length):null;if(!e)throw new Error("NotImplementedException");return e}set(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");const n=this._unsafe_create_view();if(!e||!n||e.constructor!==n.constructor)throw new Error(`Assert failed: Expected ${n.constructor}`);n.set(e,t)}copyTo(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");const n=this._unsafe_create_view();if(!e||!n||e.constructor!==n.constructor)throw new Error(`Assert failed: Expected ${n.constructor}`);const r=n.subarray(t);e.set(r)}slice(e,t){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return this._unsafe_create_view().slice(e,t)}get length(){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return this._length}get byteLength(){if(this.isDisposed)throw new Error("Assert failed: ObjectDisposedException");return 0==this._viewType?this._length:1==this._viewType?this._length<<2:2==this._viewType?this._length<<3:0}}class Span extends An{constructor(e,t,n){super(e,t,n),this.is_disposed=!1}dispose(){this.is_disposed=!0}get isDisposed(){return this.is_disposed}}class ArraySegment extends An{constructor(e,t,n){super(e,t,n)}dispose(){Mr(this,T)}get isDisposed(){return this[Lr]===T}}function Rn(e,t,n){if(t===R.None||t===R.Void)return;let r,o,a,s;o=Xr(un(e)),a=Xr(pn(e)),s=Xr(dn(e));const i=ln(e);r=Ln(i),t===R.Nullable&&(t=i);const c=Ln(t),l=un(e),u=n*rn;return e=>c(e+u,l,r,o,a,s)}function Ln(e){if(e===R.None||e===R.Void)return;const t=Kt.get(e);return t&&"function"==typeof t||w(!1,`ERR41: Unknown converter for type ${e}. ${Jr}`),t}function Cn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),!!ae(e)}(e)}function $n(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ae(e)}(e)}function Nn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),se(e)}(e)}function Dn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),de(e)}(e)}function Bn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),_e(e)}(e)}function On(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ge(e)}(e)}function Mn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),he(e)}(e)}function Fn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),be(e)}(e)}function Pn(e){return mn(e)==R.None?null:function(e){return e||w(!1,"Null arg"),ge(e)}(e)}function zn(e){return mn(e)==R.None?null:bn(e)}function Vn(){return null}function Hn(e){return mn(e)===R.None?null:function(e){e||w(!1,"Null arg");const t=ge(e);return new Date(t)}(e)}function Wn(e,t,n,r,o,a){if(mn(e)===R.None)return null;const s=En(e);let i=zr(s);return null==i&&(i=(e,t,i)=>l.javaScriptExports.call_delegate(s,e,t,i,n,r,o,a),i.dispose=()=>{i.isDisposed||(i.isDisposed=!0,Mr(i,s))},i.isDisposed=!1,Or(i,s)),i}function Gn(e,t,n){const r=mn(e);if(r===R.None)return null;if(r!==R.Task){n||(n=Kt.get(r)),n||w(!1,`Unknown sub_converter for type ${R[r]}. ${Jr}`);const t=n(e);return new Promise((e=>e(t)))}const o=kn(e);if(o==x)return new Promise((e=>e(void 0)));const a=Nr(o);a||w(!1,`ERR28: promise not found for js_handle: ${o} `),u.assertIsControllablePromise(a);const s=u.getPromiseController(a),i=s.resolve;return s.resolve=e=>{const t=mn(e);if(t===R.None)return void i(null);n||(n=Kt.get(t)),n||w(!1,`Unknown sub_converter for type ${R[t]}. ${Jr}`);const r=n(e);i(r)},a}function qn(e){if(mn(e)==R.None)return null;const t=In(e);try{return rt(t)}finally{t.release()}}function Jn(e){const t=mn(e);if(t==R.None)return null;if(t==R.JSException)return Nr(kn(e));const n=En(e);let r=zr(n);if(null==r){const t=qn(e);r=new ManagedError(t),Or(r,n)}return r}function Yn(e){return mn(e)==R.None?null:Nr(kn(e))}function Xn(e){const t=mn(e);if(t==R.None)return null;if(t==R.JSObject)return Nr(kn(e));if(t==R.Array){const t=function(e){return e||w(!1,"Null arg"),ie(e+4)}(e);return Kn(e,t)}if(t==R.Object){const t=En(e);if(t===T)return null;let n=zr(t);return n||(n=new ManagedObject,Or(n,t)),n}const n=Kt.get(t);return n||w(!1,`Unknown converter for type ${R[t]}. ${Jr}`),n(e)}function Zn(e,t){return t||w(!1,"Expected valid element_type parameter"),Kn(e,t)}function Kn(e,n){if(mn(e)==R.None)return null;-1==jn(n)&&w(!1,`Element type ${R[n]} not supported`);const r=bn(e),o=xn(e);let a=null;if(n==R.String){a=new Array(o);for(let e=0;e>2,(r>>2)+o).slice();else{if(n!=R.Double)throw new Error(`NotImplementedException ${R[n]}. ${Jr}`);a=Te().subarray(r>>3,(r>>3)+o).slice()}return t._free(r),a}function Qn(e,t){t||w(!1,"Expected valid element_type parameter");const n=bn(e),r=xn(e);let o=null;if(t==R.Byte)o=new Span(n,r,0);else if(t==R.Int32)o=new Span(n,r,1);else{if(t!=R.Double)throw new Error(`NotImplementedException ${R[t]}. ${Jr}`);o=new Span(n,r,2)}return o}function er(e,t){t||w(!1,"Expected valid element_type parameter");const n=bn(e),r=xn(e);let o=null;if(t==R.Byte)o=new ArraySegment(n,r,0);else if(t==R.Int32)o=new ArraySegment(n,r,1);else{if(t!=R.Double)throw new Error(`NotImplementedException ${R[t]}. ${Jr}`);o=new ArraySegment(n,r,2)}return Or(o,En(e)),o}let tr;const nr=[null];function rr(e,t){ur.set(e,t),lt(`added module imports '${e}'`)}function or(e,t,n){if(!e)throw new Error("Assert failed: Null reference");e[t]=n}function ar(e,t){if(!e)throw new Error("Assert failed: Null reference");return e[t]}function sr(e,t){if(!e)throw new Error("Assert failed: Null reference");return t in e}function ir(e,t){if(!e)throw new Error("Assert failed: Null reference");return typeof e[t]}function cr(){return globalThis}const lr=new Map,ur=new Map;function pr(e,t){e&&"string"==typeof e||w(!1,"module_name must be string"),t&&"string"==typeof t||w(!1,"module_url must be string");let n=lr.get(e);const r=!n;return r&&(lt(`importing ES6 module '${e}' from '${t}'`),n=import(t),lr.set(e,n)),Gr((async()=>{const o=await n;return r&&(ur.set(e,o),lt(`imported ES6 module '${e}' from '${t}'`)),o}))}function dr(e,t,n){const r=function(e,t){let n="unknown exception";if(t){n=t.toString();const e=t.stack;e&&(e.startsWith(n)?n=e:n+="\n"+e),n=mt(n)}return e&&X(e,1),n}(e,t);ot(r,n)}function _r(e,t){e&&X(e,0),t&&t.clear()}function fr(){u.assert_runtime_running(),l.mono_wasm_bindings_is_ready||w(!1,"The runtime must be initialized.")}const mr="function"==typeof globalThis.WeakRef;function hr(e){return mr?new WeakRef(e):{deref:()=>e,dispose:()=>{e=null}}}const br=new Map,gr=new Map;let yr=0;function wr(e){if(br.has(e))return br.get(e);const t=St.mono_wasm_assembly_load(e);return br.set(e,t),t}function Sr(e,t){yr||(yr=St.mono_wasm_get_corlib());let n=function(e,t,n){let r=gr.get(e);r||gr.set(e,r=new Map);let o=r.get(t);return o||(o=new Map,r.set(t,o)),o.get(n)}(yr,e,t);if(void 0!==n)return n;if(n=St.mono_wasm_assembly_find_class(yr,e,t),!n)throw new Error(`Failed to find corlib class ${e}.${t}`);return function(e,t,n,r){const o=gr.get(e);if(!o)throw new Error("internal error");const a=o.get(t);if(!a)throw new Error("internal error");a.set(n,r)}(yr,e,t,n),n}function kr(e,t){fr();const n=Be();try{if(St.mono_wasm_invoke_method_bound(e,t,n.address))throw new Error("ERR24: Unexpected error: "+rt(n));if(function(e){return e||w(!1,"Null args"),mn(e)!==R.None}(t))throw Jn(an(t,0))}finally{n.release()}}const vr=new Map;async function Er(e){if(fr(),!vr.get(e)){const t=Jt(),n=wr(e);if(!n)throw new Error("Could not find assembly: "+e);const r=St.mono_wasm_assembly_find_class(n,l.runtime_interop_namespace,"__GeneratedInitializer");if(r){const e=St.mono_wasm_assembly_find_method(r,"__Register_",-1);if(e){const t=Be(),n=Be();try{if(St.mono_wasm_invoke_method_ref(e,U,j,t.address,n.address),t.value!==S){const e=rt(n);throw new Error(e)}}finally{t.release(),n.release()}}}else St.mono_wasm_runtime_run_module_cctor(n);Yt(t,"mono.getAssemblyExports:",e)}return vr.get(e)||{}}function Ur(e){const t=e.substring(e.indexOf("[")+1,e.indexOf("]")).trim(),n=(e=e.substring(e.indexOf("]")+1).trim()).substring(e.indexOf(":")+1);let r="",o=e=e.substring(0,e.indexOf(":")).trim();if(-1!=e.indexOf(".")){const t=e.lastIndexOf(".");r=e.substring(0,t),o=e.substring(t+1)}if(!t.trim())throw new Error("No assembly name specified "+e);if(!o.trim())throw new Error("No class name specified "+e);if(!n.trim())throw new Error("No method name specified "+e);return{assembly:t,namespace:r,classname:o,methodname:n}}const Ir="function"==typeof globalThis.FinalizationRegistry;let xr;const Tr=[null],jr=[];let Ar=1;const Rr=new Map;Ir&&(xr=new globalThis.FinalizationRegistry(Pr));const Lr=Symbol.for("wasm js_owned_gc_handle"),Cr=Symbol.for("wasm cs_owned_js_handle"),$r=Symbol.for("wasm do_not_force_dispose");function Nr(e){return e!==x&&e!==I?Tr[e]:null}function Dr(e){if(e[Cr])return e[Cr];const t=jr.length?jr.pop():Ar++;return Tr[t]=e,Object.isExtensible(e)&&(e[Cr]=t),t}function Br(e){const t=Tr[e];null!=t&&(void 0!==t[Cr]&&(t[Cr]=void 0),Tr[e]=void 0,jr.push(e))}function Or(e,t){e[Lr]=t,Ir&&xr.register(e,t,e);const n=hr(e);Rr.set(t,n)}function Mr(e,t){e&&(t=e[Lr],e[Lr]=T,Ir&&xr.unregister(e)),t!==T&&Rr.delete(t)&&l.javaScriptExports.release_js_owned_object_by_gc_handle(t)}function Fr(e){const t=e[Lr];if(t==T)throw new Error("Assert failed: ObjectDisposedException");return t}function Pr(e){u.is_exited()||Mr(null,e)}function zr(e){if(!e)return null;const t=Rr.get(e);return t?t.deref():null}function Vr(e,t){let n=!1,r=!1,o=0,a=0,s=0,i=0;const c=[...Rr.keys()];for(const e of c){const r=Rr.get(e),o=r.deref();if(Ir&&o&&xr.unregister(o),o){const a="boolean"==typeof o[$r]&&o[$r];if(t&&pt(`Proxy of C# ${typeof o} with GCHandle ${e} was still alive. ${a?"keeping":"disposing"}.`),a)n=!0;else{const t=u.getPromiseController(o);t&&t.reject(new Error("WebWorker which is origin of the Task is being terminated.")),"function"==typeof o.dispose&&o.dispose(),o[Lr]===e&&(o[Lr]=T),!mr&&r&&r.dispose(),s++}}}n||(Rr.clear(),Ir&&(xr=new globalThis.FinalizationRegistry(Pr)));for(let e=0;en.resolve(e))).catch((e=>n.reject(e))),t}function qr(e){const t=zr(e);if(!t)return;const n=t.promise;n||w(!1,`Expected Promise for GCHandle ${e}`),u.assertIsControllablePromise(n),u.getPromiseController(n).reject(new Error("OperationCanceledException"))}const Jr="For more information see https://aka.ms/dotnet-wasm-jsinterop";function Yr(e,t,n){if(t===R.None||t===R.Void)return;let r,o,a,s;o=Ln(un(e)),a=Ln(pn(e)),s=Ln(dn(e));const i=ln(e);r=Xr(i),t===R.Nullable&&(t=i);const c=Xr(t),l=un(e),u=n*rn;return(e,t)=>{c(e+u,t,l,r,o,a,s)}}function Xr(e){if(e===R.None||e===R.Void)return;const t=Qt.get(e);return t&&"function"==typeof t||w(!1,`ERR30: Unknown converter for type ${e}`),t}function Zr(e,t){null==t?hn(e,R.None):(hn(e,R.Boolean),gn(e,t))}function Kr(e,t){null==t?hn(e,R.None):(hn(e,R.Byte),function(e,t){e||w(!1,"Null arg"),V(e,t)}(e,t))}function Qr(e,t){null==t?hn(e,R.None):(hn(e,R.Char),function(e,t){e||w(!1,"Null arg"),H(e,t)}(e,t))}function eo(e,t){null==t?hn(e,R.None):(hn(e,R.Int16),function(e,t){e||w(!1,"Null arg"),Y(e,t)}(e,t))}function to(e,t){null==t?hn(e,R.None):(hn(e,R.Int32),function(e,t){e||w(!1,"Null arg"),Z(e,t)}(e,t))}function no(e,t){null==t?hn(e,R.None):(hn(e,R.Int52),function(e,t){if(e||w(!1,"Null arg"),!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not an integer: ${t} (${typeof t})`);re(e,t)}(e,t))}function ro(e,t){null==t?hn(e,R.None):(hn(e,R.BigInt64),function(e,t){e||w(!1,"Null arg"),te(e,t)}(e,t))}function oo(e,t){null==t?hn(e,R.None):(hn(e,R.Double),Sn(e,t))}function ao(e,t){null==t?hn(e,R.None):(hn(e,R.Single),function(e,t){e||w(!1,"Null arg"),ne(e,t)}(e,t))}function so(e,t){null==t?hn(e,R.None):(hn(e,R.IntPtr),yn(e,t))}function io(e,t){if(null==t)hn(e,R.None);else{if(!(t instanceof Date))throw new Error("Assert failed: Value is not a Date");hn(e,R.DateTime),wn(e,t)}}function co(e,t){if(null==t)hn(e,R.None);else{if(!(t instanceof Date))throw new Error("Assert failed: Value is not a Date");hn(e,R.DateTimeOffset),wn(e,t)}}function lo(e,t){if(null==t)hn(e,R.None);else{if(hn(e,R.String),"string"!=typeof t)throw new Error("Assert failed: Value is not a String");uo(e,t)}}function uo(e,t){const n=In(e);try{ot(t,n)}finally{n.release()}}function po(e){hn(e,R.None)}function _o(e,t,n,r,o,a,s){if(null==t)return void hn(e,R.None);if(!(t&&t instanceof Function))throw new Error("Assert failed: Value is not a Function");const i=e=>{const n=an(e,0),c=an(e,1),l=an(e,2),u=an(e,3),p=an(e,4);try{let e,n,d;L&&i.isDisposed,o&&(e=o(l)),a&&(n=a(u)),s&&(d=s(p));const _=t(e,n,d);r&&r(c,_)}catch(e){ho(n,e)}};i[tn]=!0,i.isDisposed=!1,i.dispose=()=>{i.isDisposed=!0},vn(e,Dr(i)),hn(e,R.Function)}class fo{constructor(e){this.promise=e}dispose(){Mr(this,T)}get isDisposed(){return this[Lr]===T}}function mo(e,t,n,r){if(null==t)return void hn(e,R.None);if(!Wr(t))throw new Error("Assert failed: Value is not a Promise");const o=l.javaScriptExports.create_task_callback();Un(e,o),hn(e,R.Task);const a=new fo(t);Or(a,o),t.then((e=>{try{u.assert_runtime_running(),a.isDisposed&&w(!1,"This promise can't be propagated to managed code, because the Task was already freed."),l.javaScriptExports.complete_task(o,null,e,r||go),Mr(a,o)}catch(e){pt("Exception marshalling result of JS promise to CS: ",e)}})).catch((e=>{try{u.assert_runtime_running(),a.isDisposed&&w(!1,"This promise can't be propagated to managed code, because the Task was already freed."),l.javaScriptExports.complete_task(o,e,null,void 0),Mr(a,o)}catch(e){u.is_exited()||pt("Exception marshalling error of JS promise to CS: ",e)}}))}function ho(e,t){if(null==t)hn(e,R.None);else if(t instanceof ManagedError)hn(e,R.Exception),Un(e,Fr(t));else{if("object"!=typeof t&&"string"!=typeof t)throw new Error("Assert failed: Value is not an Error "+typeof t);hn(e,R.JSException),uo(e,t.toString());const n=t[Cr];vn(e,n||Dr(t))}}function bo(e,t){if(null==t)hn(e,R.None);else{if(void 0!==t[Lr])throw new Error(`Assert failed: JSObject proxy of ManagedObject proxy is not supported. ${Jr}`);if("function"!=typeof t&&"object"!=typeof t)throw new Error(`Assert failed: JSObject proxy of ${typeof t} is not supported`);hn(e,R.JSObject),vn(e,Dr(t))}}function go(e,t){if(null==t)hn(e,R.None);else{const n=t[Lr],r=typeof t;if(void 0===n)if("string"===r||"symbol"===r)hn(e,R.String),uo(e,t);else if("number"===r)hn(e,R.Double),Sn(e,t);else{if("bigint"===r)throw new Error("NotImplementedException: bigint");if("boolean"===r)hn(e,R.Boolean),gn(e,t);else if(t instanceof Date)hn(e,R.DateTime),wn(e,t);else if(t instanceof Error)ho(e,t);else if(t instanceof Uint8Array)wo(e,t,R.Byte);else if(t instanceof Float64Array)wo(e,t,R.Double);else if(t instanceof Int32Array)wo(e,t,R.Int32);else if(Array.isArray(t))wo(e,t,R.Object);else{if(t instanceof Int16Array||t instanceof Int8Array||t instanceof Uint8ClampedArray||t instanceof Uint16Array||t instanceof Uint32Array||t instanceof Float32Array)throw new Error("NotImplementedException: TypedArray");if(Wr(t))mo(e,t);else{if(t instanceof Span)throw new Error("NotImplementedException: Span");if("object"!=r)throw new Error(`JSObject proxy is not supported for ${r} ${t}`);{const n=Dr(t);hn(e,R.JSObject),vn(e,n)}}}}else{if(Fr(t),t instanceof ArraySegment)throw new Error("NotImplementedException: ArraySegment. "+Jr);if(t instanceof ManagedError)hn(e,R.Exception),Un(e,n);else{if(!(t instanceof ManagedObject))throw new Error("NotImplementedException "+r+". "+Jr);hn(e,R.Object),Un(e,n)}}}}function yo(e,t,n){n||w(!1,"Expected valid element_type parameter"),wo(e,t,n)}function wo(e,n,r){if(null==n)hn(e,R.None);else{const o=jn(r);-1==o&&w(!1,`Element type ${R[r]} not supported`);const a=n.length,s=o*a,i=t._malloc(s);if(r==R.String){if(!Array.isArray(n))throw new Error("Assert failed: Value is not an Array");P(i,s),St.mono_wasm_register_root(i,s,"marshal_array_to_cs");for(let e=0;e>2,(i>>2)+a).set(n)}else{if(r!=R.Double)throw new Error("not implemented");if(!(Array.isArray(n)||n instanceof Float64Array))throw new Error("Assert failed: Value is not an Array or Float64Array");Te().subarray(i>>3,(i>>3)+a).set(n)}yn(e,i),hn(e,R.Array),function(e,t){e||w(!1,"Null arg"),q(e+4,t)}(e,r),Tn(e,n.length)}}function So(e,t,n){if(n||w(!1,"Expected valid element_type parameter"),t.isDisposed)throw new Error("Assert failed: ObjectDisposedException");vo(n,t._viewType),hn(e,R.Span),yn(e,t._pointer),Tn(e,t.length)}function ko(e,t,n){n||w(!1,"Expected valid element_type parameter");const r=Fr(t);r||w(!1,"Only roundtrip of ArraySegment instance created by C#"),vo(n,t._viewType),hn(e,R.ArraySegment),yn(e,t._pointer),Tn(e,t.length),Un(e,r)}function vo(e,t){if(e==R.Byte){if(0!=t)throw new Error("Assert failed: Expected MemoryViewType.Byte")}else if(e==R.Int32){if(1!=t)throw new Error("Assert failed: Expected MemoryViewType.Int32")}else{if(e!=R.Double)throw new Error(`NotImplementedException ${R[e]} `);if(2!=t)throw new Error("Assert failed: Expected MemoryViewType.Double")}}const Eo={now:function(){return Date.now()}};function Uo(e){void 0===globalThis.performance&&(globalThis.performance=Eo),e.require=n.require,e.scriptDirectory=u.scriptDirectory,t.locateFile===t.__locateFile&&(t.locateFile=u.locateFile),e.fetch=u.fetch_like,e.noExitRuntime=a&&!i;const r=e.updateMemoryViews;l.updateMemoryViews=e.updateMemoryViews=()=>{r()}}async function Io(){var e;if(r){if(globalThis.performance===Eo){const{performance:e}=n.require("perf_hooks");globalThis.performance=e}if(n.process=await import("process"),globalThis.crypto||(globalThis.crypto={}),!globalThis.crypto.getRandomValues){let e;try{e=n.require("node:crypto")}catch(e){}e?e.webcrypto?globalThis.crypto=e.webcrypto:e.randomBytes&&(globalThis.crypto.getRandomValues=t=>{t&&t.set(e.randomBytes(t.length))}):globalThis.crypto.getRandomValues=()=>{throw new Error("Using node without crypto support. To enable current operation, either provide polyfill for 'globalThis.crypto.getRandomValues' or enable 'node:crypto' module.")}}}l.subtle=null===(e=globalThis.crypto)||void 0===e?void 0:e.subtle}function xo(e){const t=St.mono_wasm_assembly_find_method(l.runtime_interop_exports_class,e,-1);if(!t)throw"Can't find method "+l.runtime_interop_namespace+"."+l.runtime_interop_exports_classname+"."+e;return t}function To(){if("function"!=typeof globalThis.fetch||"function"!=typeof globalThis.AbortController)throw new Error(r?"Please install `node-fetch` and `node-abort-controller` npm packages to enable HTTP client support. See also https://aka.ms/dotnet-wasm-features":"This browser doesn't support fetch API. Please use a modern browser. See also https://aka.ms/dotnet-wasm-features")}function jo(){return"undefined"!=typeof Response&&"body"in Response.prototype&&"function"==typeof ReadableStream}function Ao(){return To(),new AbortController}function Ro(e){e.abort()}function Lo(e){e.__abort_controller.abort(),e.__reader&&e.__reader.cancel().catch((e=>{e&&"AbortError"!==e.name&&t.err("Error in http_wasm_abort_response: "+e)}))}function Co(e,t,n,r,o,a,s,i){return $o(e,t,n,r,o,a,new Span(s,i,0).slice())}function $o(e,t,n,r,o,a,s){To(),e&&"string"==typeof e||w(!1,"expected url string"),t&&n&&Array.isArray(t)&&Array.isArray(n)&&t.length===n.length||w(!1,"expected headerNames and headerValues arrays"),r&&o&&Array.isArray(r)&&Array.isArray(o)&&r.length===o.length||w(!1,"expected headerNames and headerValues arrays");const i=new Headers;for(let e=0;e{const t=await u.fetch_like(e,c);return t.__abort_controller=a,t}))}function No(e){if(!e.__headerNames&&(e.__headerNames=[],e.__headerValues=[],e.headers&&e.headers.entries)){const t=e.headers.entries();for(const n of t)e.__headerNames.push(n[0]),e.__headerValues.push(n[1])}}function Do(e){return No(e),e.__headerNames}function Bo(e){return No(e),e.__headerValues}function Oo(e){return Gr((async()=>{const t=await e.arrayBuffer();return e.__buffer=t,e.__source_offset=0,t.byteLength}))}function Mo(e,t){if(e.__buffer||w(!1,"expected resoved arrayBuffer"),e.__source_offset==e.__buffer.byteLength)return 0;const n=new Uint8Array(e.__buffer,e.__source_offset);t.set(n,0);const r=Math.min(t.byteLength,n.byteLength);return e.__source_offset+=r,r}function Fo(e,t,n){const r=new Span(t,n,0);return Gr((async()=>{if(e.__reader||(e.__reader=e.body.getReader()),e.__chunk||(e.__chunk=await e.__reader.read(),e.__source_offset=0),e.__chunk.done)return 0;const t=e.__chunk.value.byteLength-e.__source_offset;t>0||w(!1,"expected remaining_source to be greater than 0");const n=Math.min(t,r.byteLength),o=e.__chunk.value.subarray(e.__source_offset,e.__source_offset+n);return r.set(o,0),e.__source_offset+=n,t==n&&(e.__chunk=void 0),n}))}let Po,zo=0,Vo=0;function Ho(){if(!u.isChromium)return;const e=(new Date).valueOf(),t=e+36e4;for(let n=Math.max(e+1e3,zo);n0;)--Vo,St.mono_background_exec()}function mono_wasm_schedule_timer_tick(){t.maybeExit(),u.is_runtime_running()&&(Po=void 0,St.mono_wasm_execute_timer())}class qo{constructor(){this.queue=[],this.offset=0}getLength(){return this.queue.length-this.offset}isEmpty(){return 0==this.queue.length}enqueue(e){this.queue.push(e)}dequeue(){if(0===this.queue.length)return;const e=this.queue[this.offset];return this.queue[this.offset]=null,2*++this.offset>=this.queue.length&&(this.queue=this.queue.slice(this.offset),this.offset=0),e}peek(){return this.queue.length>0?this.queue[this.offset]:void 0}drain(e){for(;this.getLength();)e(this.dequeue())}}const Jo=Symbol.for("wasm ws_pending_send_buffer"),Yo=Symbol.for("wasm ws_pending_send_buffer_offset"),Xo=Symbol.for("wasm ws_pending_send_buffer_type"),Zo=Symbol.for("wasm ws_pending_receive_event_queue"),Ko=Symbol.for("wasm ws_pending_receive_promise_queue"),Qo=Symbol.for("wasm ws_pending_open_promise"),ea=Symbol.for("wasm wasm_ws_pending_open_promise_used"),ta=Symbol.for("wasm ws_pending_close_promises"),na=Symbol.for("wasm ws_pending_send_promises"),ra=Symbol.for("wasm ws_is_aborted"),oa=Symbol.for("wasm ws_on_closed"),aa=Symbol.for("wasm wasm_ws_close_sent"),sa=Symbol.for("wasm wasm_ws_close_received"),ia=Symbol.for("wasm ws_receive_status_ptr"),ca=65536,la=new Uint8Array;function ua(e){var t,n;return e.readyState!=WebSocket.CLOSED?null!==(t=e.readyState)&&void 0!==t?t:-1:0==e[Zo].getLength()?null!==(n=e.readyState)&&void 0!==n?n:-1:WebSocket.OPEN}function pa(e,t,n,o){!function(){if(s)throw new Error("WebSockets are not supported in shell JS engine.");if("function"!=typeof globalThis.WebSocket)throw new Error(r?"Please install `ws` npm package to enable networking support. See also https://aka.ms/dotnet-wasm-features":"This browser doesn't support WebSocket API. Please use a modern browser. See also https://aka.ms/dotnet-wasm-features")}(),e&&"string"==typeof e||w(!1,"ERR12: Invalid uri "+typeof e),"function"!=typeof o&&w(!1,"ERR12: Invalid onClosed "+typeof o);const a=new globalThis.WebSocket(e,t||void 0),{promise_control:i}=y();a[Zo]=new qo,a[Ko]=new qo,a[Qo]=i,a[na]=[],a[ta]=[],a[ia]=n,a[oa]=o,a.binaryType="arraybuffer";const c=()=>{a[ra]||u.is_exited()||(i.resolve(a),Ho())},l=e=>{a[ra]||u.is_exited()||(function(e,t){const n=e[Zo],r=e[Ko];if("string"==typeof t.data)n.enqueue({type:0,data:Ke(t.data),offset:0});else{if("ArrayBuffer"!==t.data.constructor.name)throw new Error("ERR19: WebSocket receive expected ArrayBuffer");n.enqueue({type:1,data:new Uint8Array(t.data),offset:0})}if(r.getLength()&&n.getLength()>1)throw new Error("ERR21: Invalid WS state");for(;r.getLength()&&n.getLength();){const t=r.dequeue();ga(e,n,t.buffer_ptr,t.buffer_length),t.resolve()}Ho()}(a,e),Ho())},p=e=>{if(!(a.removeEventListener("message",l),a[ra]||u.is_exited())){a[sa]=!0,o(e.code,e.reason),i.reject(new Error(e.reason));for(const e of a[ta])e.resolve();a[Ko].drain((e=>{Z(n,0),Z(n+4,2),Z(n+8,1),e.resolve()})),a[oa].dispose()}},d=e=>{if(a[ra])return;if(u.is_exited())return;a.removeEventListener("message",l);const t=new Error(e.message||"WebSocket error");pt("WebSocket error",t),ba(a,t)};return a.addEventListener("message",l),a.addEventListener("open",c,{once:!0}),a.addEventListener("close",p,{once:!0}),a.addEventListener("error",d,{once:!0}),a.dispose=()=>{a.removeEventListener("message",l),a.removeEventListener("open",c),a.removeEventListener("close",p),a.removeEventListener("error",d),ha(a)},a}function da(e){e||w(!1,"ERR17: expected ws instance");const t=e[Qo];return e[ea]=!0,t.promise}function _a(e,n,r,o,a){if(e||w(!1,"ERR17: expected ws instance"),e[ra]||e[aa])return Promise.reject(new Error("InvalidState: The WebSocket is not connected."));if(e.readyState===WebSocket.CLOSED)return null;const s=function(e,n,r,o){let a=e[Jo],s=0;const i=n.byteLength;if(a){if(s=e[Yo],r=e[Xo],0!==i){if(s+i>a.length){const t=new Uint8Array(1.5*(s+i+50));t.set(a,0),t.subarray(s).set(n),e[Jo]=a=t}else a.subarray(s).set(n);s+=i,e[Yo]=s}}else o?0!==i&&(a=n,s=i):(0!==i&&(a=n.slice(),s=i,e[Yo]=s,e[Jo]=a),e[Xo]=r);return o?0==s||null==a?la:0===r?function(e){return void 0===Ge?t.UTF8ArrayToString(e,0,e.byteLength):Ge.decode(e)}(it(a,0,s)):a.subarray(0,s):null}(e,new Uint8Array(Ee().buffer,n,r),o,a);return a&&s?function(e,t){if(e.send(t),e[Jo]=null,e.bufferedAmount{if(0===e.bufferedAmount)r.resolve();else{const t=e.readyState;if(t!=WebSocket.OPEN&&t!=WebSocket.CLOSING)r.reject(new Error(`InvalidState: ${t} The WebSocket is not connected.`));else if(!r.isDone)return globalThis.setTimeout(s,a),void(a=Math.min(1.5*a,1e3))}const t=o.indexOf(r);t>-1&&o.splice(t,1)};return globalThis.setTimeout(s,0),n}(e,s):null}function fa(e,t,n){if(e||w(!1,"ERR18: expected ws instance"),e[ra]){const t=e[ia];return Z(t,0),Z(t+4,2),Z(t+8,1),null}const r=e[Zo],o=e[Ko];if(r.getLength())return 0!=o.getLength()&&w(!1,"ERR20: Invalid WS state"),ga(e,r,t,n),null;if(e[sa]){const t=e[ia];return Z(t,0),Z(t+4,2),Z(t+8,1),null}const{promise:a,promise_control:s}=y(),i=s;return i.buffer_ptr=t,i.buffer_length=n,o.enqueue(i),a}function ma(e,t,n,r){if(e||w(!1,"ERR19: expected ws instance"),e[ra]||e[aa]||e.readyState==WebSocket.CLOSED)return null;if(e[aa]=!0,r){const{promise:r,promise_control:o}=y();return e[ta].push(o),"string"==typeof n?e.close(t,n):e.close(t),r}return"string"==typeof n?e.close(t,n):e.close(t),null}function ha(e){var t;if(e||w(!1,"ERR18: expected ws instance"),!e[ra]&&!e[aa]){e[ra]=!0,ba(e,new Error("OperationCanceledException")),null===(t=e[oa])||void 0===t||t.dispose();try{e.close(1e3,"Connection was aborted.")}catch(e){pt("WebSocket error while aborting",e)}}}function ba(e,t){const n=e[Qo],r=e[ea];n&&r&&n.reject(t);for(const n of e[ta])n.reject(t);for(const n of e[na])n.reject(t);e[Ko].drain((e=>{e.reject(t)}))}function ga(e,t,n,r){const o=t.peek(),a=Math.min(r,o.data.length-o.offset);if(a>0){const e=o.data.subarray(o.offset,o.offset+a);new Uint8Array(Ee().buffer,n,r).set(e,0),o.offset+=a}const s=o.data.length===o.offset?1:0;s&&t.dequeue();const i=e[ia];Z(i,a),Z(i+4,o.type),Z(i+8,s)}function ya(e){return 1===St.mono_wasm_load_icu_data(e)}function wa(e,n,r){lt(`Loaded:${e.name} as ${e.behavior} size ${r.length} from ${n}`);const o=Jt(),a="string"==typeof e.virtualPath?e.virtualPath:e.name;let s=null;switch(e.behavior){case"dotnetwasm":case"js-module-threads":case"symbols":break;case"resource":case"assembly":case"pdb":u._loaded_files.push({url:n,file:a});case"heap":case"icu":s=ye(r);break;case"vfs":{const e=a.lastIndexOf("/");let n=e>0?a.substr(0,e):null,o=e>0?a.substr(e+1):a;o.startsWith("/")&&(o=o.substr(1)),n?(lt(`Creating directory '${n}'`),t.FS_createPath("/",n,!0,!0)):n="/",lt(`Creating file '${o}' in directory '${n}'`),t.FS_createDataFile(n,o,r,!0,!0,!0);break}default:throw new Error(`Unrecognized asset behavior:${e.behavior}, for asset ${e.name}`)}if("assembly"===e.behavior){if(!St.mono_wasm_add_assembly(a,s,r.length)){const e=u._loaded_files.findIndex((e=>e.file==a));u._loaded_files.splice(e,1)}}else"pdb"===e.behavior?St.mono_wasm_add_assembly(a,s,r.length):"icu"===e.behavior?ya(s)||t.err(`Error loading ICU asset ${e.name}`):"resource"===e.behavior&&St.mono_wasm_add_satellite_assembly(a,e.culture||"",s,r.length);Yt(o,"mono.instantiateAsset:",e.name),++u.actual_instantiated_assets_count}async function Sa(e){try{const t=await e.pendingDownloadInternal.response;(await t.text()).split(/[\r\n]/).forEach((e=>{const t=e.split(/:/);t.length<2||(t[1]=t.splice(1).join(":"),_t.set(Number(t[0]),t[1]))})),lt(`Loaded ${_t.size} symbols`)}catch(t){ut(`Error loading symbol file ${e.name}: ${JSON.stringify(t)}`)}}function ka(){return u.loadedFiles}const va={};function Ea(e){let t=va[e];if("string"!=typeof t){const n=St.mono_jiterp_get_opcode_info(e,0);va[e]=t=Qe(n)}return t}const Ua=2,Ia=64,xa=64,Ta=["Unknown","InterpreterTiering","NullCheck","VtableNotInitialized","Branch","BackwardBranch","ConditionalBranch","ConditionalBackwardBranch","ComplexBranch","ArrayLoadFailed","ArrayStoreFailed","StringOperationFailed","DivideByZero","Overflow","Return","Call","Throw","AllocFailed","SpanOperationFailed","CastFailed","SafepointBranchTaken","UnboxFailed","CallDelegate","Debugging","Icall","UnexpectedRetIp","LeaveCheck"],ja={};class Aa{constructor(e){this.locals=new Map,this.permanentFunctionTypeCount=0,this.permanentFunctionTypes={},this.permanentFunctionTypesByShape={},this.permanentFunctionTypesByIndex={},this.functionTypesByIndex={},this.permanentImportedFunctionCount=0,this.permanentImportedFunctions={},this.nextImportIndex=0,this.functions=[],this.estimatedExportBytes=0,this.frame=0,this.traceBuf=[],this.branchTargets=new Set,this.constantSlots=[],this.backBranchOffsets=[],this.callHandlerReturnAddresses=[],this.nextConstantSlot=0,this.compressImportNames=!1,this.lockImports=!1,this._assignParameterIndices=e=>{let t=0;for(const n in e)this.locals.set(n,t),t++;return t},this.stack=[new Ra],this.clear(e),this.cfg=new La(this)}clear(e){this.options=is(),this.stackSize=1,this.inSection=!1,this.inFunction=!1,this.lockImports=!1,this.locals.clear(),this.functionTypeCount=this.permanentFunctionTypeCount,this.functionTypes=Object.create(this.permanentFunctionTypes),this.functionTypesByShape=Object.create(this.permanentFunctionTypesByShape),this.functionTypesByIndex=Object.create(this.permanentFunctionTypesByIndex),this.nextImportIndex=0,this.importedFunctionCount=0,this.importedFunctions=Object.create(this.permanentImportedFunctions);for(const e in this.importedFunctions)this.importedFunctions[e].index=void 0;this.functions.length=0,this.estimatedExportBytes=0,this.argumentCount=0,this.current.clear(),this.traceBuf.length=0,this.branchTargets.clear(),this.activeBlocks=0,this.nextConstantSlot=0,this.constantSlots.length=this.options.useConstants?e:0;for(let e=0;e=this.stack.length&&this.stack.push(new Ra),this.current.clear()}_pop(e){if(this.stackSize<=1)throw new Error("Stack empty");const t=this.current;return this.stackSize--,e?(this.appendULeb(t.size),t.copyTo(this.current),null):t.getArrayView(!1).slice(0,t.size)}getWasmImports(){const e=t.getMemory();e instanceof WebAssembly.Memory||w(!1,`expected heap import to be WebAssembly.Memory but was ${e}`);const n={c:this.getConstants(),m:{h:e}},r=this.getImportsToEmit();for(let e=0;e>>0||e>255)throw new Error(`Byte out of range: ${e}`);return this.current.appendU8(e)}appendSimd(e,t){return this.current.appendU8(253),0!=(0|e)||0===e&&!0===t||w(!1,"Expected non-v128_load simd opcode or allowLoad==true"),this.current.appendULeb(e)}appendU32(e){return this.current.appendU32(e)}appendF32(e){return this.current.appendF32(e)}appendF64(e){return this.current.appendF64(e)}appendBoundaryValue(e,t){return this.current.appendBoundaryValue(e,t)}appendULeb(e){return this.current.appendULeb(e)}appendLeb(e){return this.current.appendLeb(e)}appendLebRef(e,t){return this.current.appendLebRef(e,t)}appendBytes(e){return this.current.appendBytes(e)}appendName(e){return this.current.appendName(e)}ret(e){this.ip_const(e),this.appendU8(15)}i32_const(e){this.appendU8(65),this.appendLeb(e)}ptr_const(e){let t=this.options.useConstants?this.constantSlots.indexOf(e):-1;this.options.useConstants&&t<0&&this.nextConstantSlot=0?(this.appendU8(35),this.appendLeb(t)):this.i32_const(e)}ip_const(e){this.appendU8(65),this.appendLeb(e-this.base)}i52_const(e){this.appendU8(66),this.appendLeb(e)}v128_const(e){if(0===e)this.local("v128_zero");else{if("object"!=typeof e)throw new Error("Expected v128_const arg to be 0 or a Uint8Array");{16!==e.byteLength&&w(!1,"Expected v128_const arg to be 16 bytes in size");let t=!0;for(let n=0;n<16;n++)0!==e[n]&&(t=!1);t?this.local("v128_zero"):(this.appendSimd(12),this.appendBytes(e))}}}defineType(e,t,n,r){if(this.functionTypes[e])throw new Error(`Function type ${e} already defined`);if(r&&this.functionTypeCount>this.permanentFunctionTypeCount)throw new Error("New permanent function types cannot be defined after non-permanent ones");let o="";for(const e in t)o+=t[e]+",";o+=n;let a=this.functionTypesByShape[o];"number"!=typeof a&&(a=this.functionTypeCount++,r?(this.permanentFunctionTypeCount++,this.permanentFunctionTypesByShape[o]=a,this.permanentFunctionTypesByIndex[a]=[t,Object.values(t).length,n]):(this.functionTypesByShape[o]=a,this.functionTypesByIndex[a]=[t,Object.values(t).length,n]));const s=[a,t,n,`(${JSON.stringify(t)}) -> ${n}`,r];return r?this.permanentFunctionTypes[e]=s:this.functionTypes[e]=s,a}generateTypeSection(){this.beginSection(1),this.appendULeb(this.functionTypeCount);for(let e=0;ee.index-t.index)),e}_generateImportSection(e){const t=this.getImportsToEmit();if(this.lockImports=!0,!1!==e)throw new Error("function table imports are disabled");this.beginSection(2),this.appendULeb(1+t.length+this.constantSlots.length+(!1!==e?1:0));for(let e=0;e0)throw new Error("New permanent imports cannot be defined after any indexes have been assigned");const a=this.functionTypes[n];if(!a)throw new Error("No function type named "+n);if(r&&!a[4])throw new Error("A permanent import must have a permanent function type");const s=a[0],i=r?this.permanentImportedFunctions:this.importedFunctions;if("number"==typeof o&&(o=za().get(o)),"function"!=typeof o&&void 0!==o)throw new Error(`Value passed for imported function ${t} was not a function or valid function pointer or undefined`);return i[t]={index:void 0,typeIndex:s,module:e,name:t,func:o}}markImportAsUsed(e){const t=this.importedFunctions[e];if(!t)throw new Error("No imported function named "+e);"number"!=typeof t.index&&(t.index=this.importedFunctionCount++)}defineFunction(e,t){const n={index:this.functions.length,name:e.name,typeName:e.type,typeIndex:this.functionTypes[e.type][0],export:e.export,locals:e.locals,generator:t,error:null,blob:null};return this.functions.push(n),n.export&&(this.estimatedExportBytes+=n.name.length+8),n}emitImportsAndFunctions(e){let t=0;for(let e=0;e0)throw new Error(`${this.activeBlocks} unclosed block(s) at end of function`);const t=this._pop(e);return this.inFunction=!1,t}block(e,t){const n=this.appendU8(t||2);return e?this.appendU8(e):this.appendU8(64),this.activeBlocks++,n}endBlock(){if(this.activeBlocks<=0)throw new Error("No blocks active");this.activeBlocks--,this.appendU8(11)}arg(e,t){const n="string"==typeof e?this.locals.has(e)?this.locals.get(e):void 0:e;if("number"!=typeof n)throw new Error("No local named "+e);t&&this.appendU8(t),this.appendULeb(n)}local(e,t){const n="string"==typeof e?this.locals.has(e)?this.locals.get(e):void 0:e+this.argumentCount;if("number"!=typeof n)throw new Error("No local named "+e);t?this.appendU8(t):this.appendU8(32),this.appendULeb(n)}appendMemarg(e,t){this.appendULeb(t),this.appendULeb(e)}lea(e,t){"string"==typeof e?this.local(e):this.i32_const(e),this.i32_const(t),this.appendU8(106)}getArrayView(e){if(this.stackSize>1)throw new Error("Jiterpreter block stack not empty");return this.stack[0].getArrayView(e)}getConstants(){const e={};for(let t=0;t=this.capacity)throw new Error("Buffer full");const t=this.size;return Ee()[this.buffer+this.size++]=e,t}appendU32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,0),this.size+=4,t}appendI32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,1),this.size+=4,t}appendF32(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,2),this.size+=4,t}appendF64(e){const t=this.size;return St.mono_jiterp_write_number_unaligned(this.buffer+this.size,e,3),this.size+=8,t}appendBoundaryValue(e,t){if(this.size+8>=this.capacity)throw new Error("Buffer full");const n=St.mono_jiterp_encode_leb_signed_boundary(this.buffer+this.size,e,t);if(n<1)throw new Error(`Failed to encode ${e} bit boundary value with sign ${t}`);return this.size+=n,n}appendULeb(e){if("number"!=typeof e&&w(!1,`appendULeb expected number but got ${e}`),e>=0||w(!1,"cannot pass negative value to appendULeb"),e<127){if(this.size+1>=this.capacity)throw new Error("Buffer full");return this.appendU8(e),1}if(this.size+8>=this.capacity)throw new Error("Buffer full");const t=St.mono_jiterp_encode_leb52(this.buffer+this.size,e,0);if(t<1)throw new Error(`Failed to encode value '${e}' as unsigned leb`);return this.size+=t,t}appendLeb(e){if("number"!=typeof e&&w(!1,`appendLeb expected number but got ${e}`),this.size+8>=this.capacity)throw new Error("Buffer full");const t=St.mono_jiterp_encode_leb52(this.buffer+this.size,e,1);if(t<1)throw new Error(`Failed to encode value '${e}' as signed leb`);return this.size+=t,t}appendLebRef(e,t){if(this.size+8>=this.capacity)throw new Error("Buffer full");const n=St.mono_jiterp_encode_leb64_ref(this.buffer+this.size,e,t?1:0);if(n<1)throw new Error("Failed to encode value as leb");return this.size+=n,n}copyTo(e,t){"number"!=typeof t&&(t=this.size),Ee().copyWithin(e.buffer+e.size,this.buffer,this.buffer+t),e.size+=t}appendBytes(e,t){const n=this.size,r=Ee();return e.buffer===r.buffer?("number"!=typeof t&&(t=e.length),r.copyWithin(this.buffer+n,e.byteOffset,e.byteOffset+t),this.size+=t):("number"==typeof t&&(e=new Uint8Array(e.buffer,e.byteOffset,t)),this.getArrayView(!0).set(e,this.size),this.size+=e.length),n}appendName(e){let t=e.length,n=1===e.length?e.charCodeAt(0):-1;if(n>127&&(n=-1),t&&n<0)if(this.encoder)t=this.encoder.encodeInto(e,this.textBuf).written||0;else for(let n=0;n127)throw new Error("Out of range character and no TextEncoder available");this.textBuf[n]=t}this.appendULeb(t),n>=0?this.appendU8(n):t>1&&this.appendBytes(this.textBuf,t)}getArrayView(e){return new Uint8Array(Ee().buffer,this.buffer,e?this.capacity:this.size)}}class La{constructor(e){this.segments=[],this.backBranchTargets=null,this.lastSegmentEnd=0,this.overheadBytes=0,this.blockStack=[],this.backDispatchOffsets=[],this.dispatchTable=new Map,this.observedBranchTargets=new Set,this.trace=0,this.builder=e}initialize(e,t,n){this.segments.length=0,this.blockStack.length=0,this.startOfBody=e,this.backBranchTargets=t,this.base=this.builder.base,this.ip=this.lastSegmentStartIp=this.builder.base,this.lastSegmentEnd=0,this.overheadBytes=10,this.dispatchTable.clear(),this.observedBranchTargets.clear(),this.trace=n,this.backDispatchOffsets.length=0}entry(e){this.entryIp=e,this.appendBlob(),1!==this.segments.length&&w(!1,"expected 1 segment"),"blob"!==this.segments[0].type&&w(!1,"expected blob"),this.entryBlob=this.segments[0],this.segments.length=0,this.overheadBytes+=9,this.backBranchTargets&&(this.overheadBytes+=20,this.overheadBytes+=this.backBranchTargets.length)}appendBlob(){this.builder.current.size!==this.lastSegmentEnd&&(this.segments.push({type:"blob",ip:this.lastSegmentStartIp,start:this.lastSegmentEnd,length:this.builder.current.size-this.lastSegmentEnd}),this.lastSegmentStartIp=this.ip,this.lastSegmentEnd=this.builder.current.size,this.overheadBytes+=2)}startBranchBlock(e,t){this.appendBlob(),this.segments.push({type:"branch-block-header",ip:e,isBackBranchTarget:t}),this.overheadBytes+=1}branch(e,t,n){this.observedBranchTargets.add(e),this.appendBlob(),this.segments.push({type:"branch",from:this.ip,target:e,isBackward:t,branchType:n}),this.overheadBytes+=4,t&&(this.overheadBytes+=11),3!==n&&2!==n||(this.overheadBytes+=17)}emitBlob(e,t){const n=t.subarray(e.start,e.start+e.length);this.builder.appendBytes(n)}generate(){this.appendBlob();const e=this.builder.endFunction(!1);this.builder._push(),this.builder.base=this.base,this.emitBlob(this.entryBlob,e),this.backBranchTargets&&(this.builder.i32_const(0),this.builder.local("disp",33),this.builder.block(64,3));for(let e=0;ee-t));for(let e=0;e0&&ut("No back branch targets were reachable after filtering");else if(1===this.backDispatchOffsets.length)this.trace>0&&(this.backDispatchOffsets[0]===this.entryIp?ut(`Exactly one back dispatch offset and it was the entry point 0x${this.entryIp.toString(16)}`):ut(`Exactly one back dispatch offset and it was 0x${this.backDispatchOffsets[0].toString(16)}`)),this.builder.local("disp"),this.builder.appendU8(13),this.builder.appendULeb(this.blockStack.indexOf(this.backDispatchOffsets[0]));else{this.builder.block(64),this.builder.block(64),this.builder.local("disp"),this.builder.appendU8(14),this.builder.appendULeb(this.backDispatchOffsets.length+1),this.builder.appendULeb(1);for(let e=0;e0&&this.blockStack.push(0)}this.trace>1&&ut(`blockStack=${this.blockStack}`);for(let t=0;t1&&ut(`backward br from ${n.from.toString(16)} to ${n.target.toString(16)}: disp=${e}`),this.builder.i32_const(1),this.builder.local("backbranched",33),this.builder.i32_const(e),this.builder.local("disp",33),r=!0}else this.trace>0&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} failed: back branch target not in dispatch table`),t=-1;if(t>=0||r){let e=0;switch(n.branchType){case 2:Ma(this.builder,n.from),this.builder.appendU8(12);break;case 3:this.builder.block(64,4),Ma(this.builder,n.from),this.builder.appendU8(12),e=1;break;case 0:this.builder.appendU8(12);break;case 1:this.builder.appendU8(13);break;default:throw new Error("Unimplemented branch type")}this.builder.appendULeb(e+t),e&&this.builder.endBlock(),this.trace>1&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} breaking out ${e+t+1} level(s)`)}else{if(this.trace>0){const e=this.base;n.target>=e&&n.target1&&ut(`br from ${n.from.toString(16)} to ${n.target.toString(16)} failed (outside of trace 0x${e.toString(16)} - 0x${this.exitIp.toString(16)})`)}const e=1===n.branchType||3===n.branchType;e&&this.builder.block(64,4),Fa(this.builder,n.target,4),e&&this.builder.endBlock()}break}default:throw new Error("unreachable")}}return this.backBranchTargets&&(this.blockStack.length<=1||w(!1,"expected one or zero entries in the block stack at the end"),this.blockStack.length&&this.blockStack.shift(),this.builder.endBlock()),0!==this.blockStack.length&&w(!1,`expected block stack to be empty at end of function but it was ${this.blockStack}`),this.builder.ip_const(this.exitIp),this.builder.appendU8(15),this.builder.appendU8(11),this.builder._pop(!1)}}let Ca,$a=-1,Na=0;const Da={generation:0,compilation:0},Ba={traceCandidates:0,tracesCompiled:0,entryWrappersCompiled:0,jitCallsCompiled:0,directJitCallsCompiled:0,failures:0,bytesGenerated:0,nullChecksEliminated:0,nullChecksFused:0,backBranchesEmitted:0,backBranchesNotEmitted:0,simdFallback:{}},Oa=globalThis.performance&&globalThis.performance.now?globalThis.performance.now.bind(globalThis.performance):Date.now;function Ma(e,t){e.ptr_const(St.mono_jiterp_get_polling_required_address()),e.appendU8(40),e.appendMemarg(0,2),e.block(64,4),e.local("frame"),e.i32_const(t),e.callImport("safepoint"),e.endBlock()}function Fa(e,t,n){e.ip_const(t),e.options.countBailouts&&(e.i32_const(e.base),e.i32_const(n),e.callImport("bailout")),e.appendU8(15)}function Pa(e,t,n,r){n<=e.options.monitoringLongDistance+2&&(e.local("cinfo"),e.i32_const(n),e.appendU8(54),e.appendMemarg(4,0),e.local("cinfo"),e.local("backbranched"),e.appendU8(54),e.appendMemarg(0,0)),e.ip_const(t),e.options.countBailouts&&(e.i32_const(e.base),e.i32_const(r),e.callImport("bailout")),e.appendU8(15)}function za(){if(Ca||(Ca=t.getWasmIndirectFunctionTable()),!Ca)throw new Error("Module did not export the indirect function table");return Ca}function Va(e){e||w(!1,"Attempting to set null function into table"),l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const t=za();Na<=0&&($a=t.length,Na=512,t.grow(Na));const n=$a;return $a++,Na--,t.set(n,e),n}function Ha(e,t,n,r,o){if(r<=0)return o&&e.appendU8(26),!0;if(r>=Ia)return!1;if(0!==n)return!1;const a=o?"memop_dest":"pLocals";o&&e.local(a,33);let s=o?0:t;if(e.options.enableSimd){const t=16;for(;r>=t;)e.local(a),e.v128_const(0),e.appendSimd(11),e.appendMemarg(s,0),s+=t,r-=t}for(;r>=8;)e.local(a),e.i52_const(0),e.appendU8(55),e.appendMemarg(s,0),s+=8,r-=8;for(;r>=1;){e.local(a),e.i32_const(0);let t=r%4;switch(t){case 0:t=4,e.appendU8(54);break;case 1:e.appendU8(58);break;case 3:case 2:t=2,e.appendU8(59)}e.appendMemarg(s,0),s+=t,r-=t}return!0}function Wa(e,t,n){Ha(e,0,t,n,!0)||(e.i32_const(t),e.i32_const(n),e.appendU8(252),e.appendU8(11),e.appendU8(0))}function Ga(e,t,n,r,o,a,s){if(r<=0)return o&&(e.appendU8(26),e.appendU8(26)),!0;if(r>=xa)return!1;o?(a=a||"memop_dest",s=s||"memop_src",e.local(s,33),e.local(a,33)):a&&s||(a=s="pLocals");let i=o?0:t,c=o?0:n;if(e.options.enableSimd){const t=16;for(;r>=t;)e.local(a),e.local(s),e.appendSimd(0,!0),e.appendMemarg(c,0),e.appendSimd(11),e.appendMemarg(i,0),i+=t,c+=t,r-=t}for(;r>=8;)e.local(a),e.local(s),e.appendU8(41),e.appendMemarg(c,0),e.appendU8(55),e.appendMemarg(i,0),i+=8,c+=8,r-=8;for(;r>=1;){let t,n,o=r%4;switch(o){case 0:o=4,t=40,n=54;break;default:case 1:o=1,t=44,n=58;break;case 3:case 2:o=2,t=46,n=59}e.local(a),e.local(s),e.appendU8(t),e.appendMemarg(c,0),e.appendU8(n),e.appendMemarg(i,0),c+=o,i+=o,r-=o}return!0}function qa(e,t){return Ga(e,0,0,t,!0)||(e.i32_const(t),e.appendU8(252),e.appendU8(10),e.appendU8(0),e.appendU8(0)),!0}function Ja(){Ba.failures++,Ba.failures>=Ua&&(ut(`Disabling jiterpreter after ${Ba.failures} failures`),ss({enableTraces:!1,enableInterpEntry:!1,enableJitCall:!1}))}const Ya={};function Xa(e){const t=Ya[e];return void 0===t?Ya[e]=St.mono_jiterp_get_member_offset(e):t}function Za(e){const n=t.asm[e];if("function"!=typeof n)throw new Error(`raw cwrap ${e} not found`);return n}const Ka={};function Qa(e){let t=Ka[e];return"number"!=typeof t&&(t=Ka[e]=St.mono_jiterp_get_opcode_value_table_entry(e)),t}function es(e,t){return[e,e,t]}let ts;function ns(){if(!St.mono_wasm_is_zero_page_reserved())return!1;if(!0===ts)return!1;const e=Ie();for(let t=0;t<8;t++)if(0!==e[t])return!1===ts&&dt(`Zero page optimizations are enabled but garbage appeared in memory at address ${4*t}: ${e[t]}`),ts=!0,!1;return ts=!1,!0}const rs={enableTraces:"jiterpreter-traces-enabled",enableInterpEntry:"jiterpreter-interp-entry-enabled",enableJitCall:"jiterpreter-jit-call-enabled",enableBackwardBranches:"jiterpreter-backward-branch-entries-enabled",enableCallResume:"jiterpreter-call-resume-enabled",enableWasmEh:"jiterpreter-wasm-eh-enabled",enableSimd:"jiterpreter-simd-enabled",zeroPageOptimization:"jiterpreter-zero-page-optimization",enableStats:"jiterpreter-stats-enabled",disableHeuristic:"jiterpreter-disable-heuristic",estimateHeat:"jiterpreter-estimate-heat",countBailouts:"jiterpreter-count-bailouts",dumpTraces:"jiterpreter-dump-traces",useConstants:"jiterpreter-use-constants",eliminateNullChecks:"jiterpreter-eliminate-null-checks",noExitBackwardBranches:"jiterpreter-backward-branches-enabled",directJitCalls:"jiterpreter-direct-jit-calls",minimumTraceValue:"jiterpreter-minimum-trace-value",minimumTraceHitCount:"jiterpreter-minimum-trace-hit-count",monitoringPeriod:"jiterpreter-trace-monitoring-period",monitoringShortDistance:"jiterpreter-trace-monitoring-short-distance",monitoringLongDistance:"jiterpreter-trace-monitoring-long-distance",monitoringMaxAveragePenalty:"jiterpreter-trace-monitoring-max-average-penalty",backBranchBoost:"jiterpreter-back-branch-boost",jitCallHitCount:"jiterpreter-jit-call-hit-count",jitCallFlushThreshold:"jiterpreter-jit-call-queue-flush-threshold",interpEntryHitCount:"jiterpreter-interp-entry-hit-count",interpEntryFlushThreshold:"jiterpreter-interp-entry-queue-flush-threshold",wasmBytesLimit:"jiterpreter-wasm-bytes-limit"};let os=-1,as={};function ss(e){for(const t in e){const n=rs[t];if(!n){dt(`Unrecognized jiterpreter option: ${t}`);continue}const r=e[t];"boolean"==typeof r?St.mono_jiterp_parse_option((r?"--":"--no-")+n):"number"==typeof r?St.mono_jiterp_parse_option(`--${n}=${r}`):dt(`Jiterpreter option must be a boolean or a number but was ${typeof r} '${r}'`)}}function is(){const e=St.mono_jiterp_get_options_version();return e!==os&&(function(){const e=St.mono_jiterp_get_options_as_json(),n=Qe(e);t._free(e);const r=JSON.parse(n);as={};for(const e in rs){const t=rs[e];as[e]=r[t]}}(),os=e),as}const cs={2:["V128_I1_NEGATION","V128_I2_NEGATION","V128_I4_NEGATION","V128_ONES_COMPLEMENT","V128_U2_WIDEN_LOWER","V128_U2_WIDEN_UPPER","V128_I1_CREATE_SCALAR","V128_I2_CREATE_SCALAR","V128_I4_CREATE_SCALAR","V128_I8_CREATE_SCALAR","V128_I1_EXTRACT_MSB","V128_I2_EXTRACT_MSB","V128_I4_EXTRACT_MSB","V128_I8_EXTRACT_MSB","V128_I1_CREATE","V128_I2_CREATE","V128_I4_CREATE","V128_I8_CREATE","SplatX1","SplatX2","SplatX4","SplatX8","NegateD1","NegateD2","NegateD4","NegateD8","NegateR4","NegateR8","SqrtR4","SqrtR8","CeilingR4","CeilingR8","FloorR4","FloorR8","TruncateR4","TruncateR8","RoundToNearestR4","RoundToNearestR8","NotANY","AnyTrueANY","AllTrueD1","AllTrueD2","AllTrueD4","AllTrueD8","PopCountU1","BitmaskD1","BitmaskD2","BitmaskD4","BitmaskD8","AddPairwiseWideningI1","AddPairwiseWideningU1","AddPairwiseWideningI2","AddPairwiseWideningU2","AbsI1","AbsI2","AbsI4","AbsI8","AbsR4","AbsR8","ConvertToSingleI4","ConvertToSingleU4","ConvertToSingleR8","ConvertToDoubleLowerI4","ConvertToDoubleLowerU4","ConvertToDoubleLowerR8","ConvertToInt32SaturateR4","ConvertToUInt32SaturateR4","ConvertToInt32SaturateR8","ConvertToUInt32SaturateR8","SignExtendWideningLowerD1","SignExtendWideningLowerD2","SignExtendWideningLowerD4","SignExtendWideningUpperD1","SignExtendWideningUpperD2","SignExtendWideningUpperD4","ZeroExtendWideningLowerD1","ZeroExtendWideningLowerD2","ZeroExtendWideningLowerD4","ZeroExtendWideningUpperD1","ZeroExtendWideningUpperD2","ZeroExtendWideningUpperD4","LoadVector128ANY","LoadScalarVector128X4","LoadScalarVector128X8","LoadScalarAndSplatVector128X1","LoadScalarAndSplatVector128X2","LoadScalarAndSplatVector128X4","LoadScalarAndSplatVector128X8","LoadWideningVector128I1","LoadWideningVector128U1","LoadWideningVector128I2","LoadWideningVector128U2","LoadWideningVector128I4","LoadWideningVector128U4"],3:["V128_I1_ADD","V128_I2_ADD","V128_I4_ADD","V128_R4_ADD","V128_I1_SUB","V128_I2_SUB","V128_I4_SUB","V128_R4_SUB","V128_BITWISE_AND","V128_BITWISE_OR","V128_BITWISE_EQUALITY","V128_BITWISE_INEQUALITY","V128_R4_FLOAT_EQUALITY","V128_R8_FLOAT_EQUALITY","V128_EXCLUSIVE_OR","V128_I1_MULTIPLY","V128_I2_MULTIPLY","V128_I4_MULTIPLY","V128_R4_MULTIPLY","V128_R4_DIVISION","V128_I1_LEFT_SHIFT","V128_I2_LEFT_SHIFT","V128_I4_LEFT_SHIFT","V128_I8_LEFT_SHIFT","V128_I1_RIGHT_SHIFT","V128_I2_RIGHT_SHIFT","V128_I4_RIGHT_SHIFT","V128_I1_URIGHT_SHIFT","V128_I2_URIGHT_SHIFT","V128_I4_URIGHT_SHIFT","V128_I8_URIGHT_SHIFT","V128_U1_NARROW","V128_U1_GREATER_THAN","V128_I1_LESS_THAN","V128_U1_LESS_THAN","V128_I2_LESS_THAN","V128_I1_EQUALS","V128_I2_EQUALS","V128_I4_EQUALS","V128_R4_EQUALS","V128_I8_EQUALS","V128_AND_NOT","V128_U2_LESS_THAN_EQUAL","V128_I1_SHUFFLE","V128_I2_SHUFFLE","V128_I4_SHUFFLE","V128_I8_SHUFFLE","ExtractScalarI1","ExtractScalarU1","ExtractScalarI2","ExtractScalarU2","ExtractScalarD4","ExtractScalarD8","ExtractScalarR4","ExtractScalarR8","SwizzleD1","AddD1","AddD2","AddD4","AddD8","AddR4","AddR8","SubtractD1","SubtractD2","SubtractD4","SubtractD8","SubtractR4","SubtractR8","MultiplyD2","MultiplyD4","MultiplyD8","MultiplyR4","MultiplyR8","DivideR4","DivideR8","DotI2","ShiftLeftD1","ShiftLeftD2","ShiftLeftD4","ShiftLeftD8","ShiftRightArithmeticD1","ShiftRightArithmeticD2","ShiftRightArithmeticD4","ShiftRightArithmeticD8","ShiftRightLogicalD1","ShiftRightLogicalD2","ShiftRightLogicalD4","ShiftRightLogicalD8","AndANY","AndNotANY","OrANY","XorANY","CompareEqualD1","CompareEqualD2","CompareEqualD4","CompareEqualD8","CompareEqualR4","CompareEqualR8","CompareNotEqualD1","CompareNotEqualD2","CompareNotEqualD4","CompareNotEqualD8","CompareNotEqualR4","CompareNotEqualR8","CompareLessThanI1","CompareLessThanU1","CompareLessThanI2","CompareLessThanU2","CompareLessThanI4","CompareLessThanU4","CompareLessThanI8","CompareLessThanR4","CompareLessThanR8","CompareLessThanOrEqualI1","CompareLessThanOrEqualU1","CompareLessThanOrEqualI2","CompareLessThanOrEqualU2","CompareLessThanOrEqualI4","CompareLessThanOrEqualU4","CompareLessThanOrEqualI8","CompareLessThanOrEqualR4","CompareLessThanOrEqualR8","CompareGreaterThanI1","CompareGreaterThanU1","CompareGreaterThanI2","CompareGreaterThanU2","CompareGreaterThanI4","CompareGreaterThanU4","CompareGreaterThanI8","CompareGreaterThanR4","CompareGreaterThanR8","CompareGreaterThanOrEqualI1","CompareGreaterThanOrEqualU1","CompareGreaterThanOrEqualI2","CompareGreaterThanOrEqualU2","CompareGreaterThanOrEqualI4","CompareGreaterThanOrEqualU4","CompareGreaterThanOrEqualI8","CompareGreaterThanOrEqualR4","CompareGreaterThanOrEqualR8","ConvertNarrowingSaturateSignedI2","ConvertNarrowingSaturateSignedI4","ConvertNarrowingSaturateUnsignedI2","ConvertNarrowingSaturateUnsignedI4","MultiplyWideningLowerI1","MultiplyWideningLowerI2","MultiplyWideningLowerI4","MultiplyWideningLowerU1","MultiplyWideningLowerU2","MultiplyWideningLowerU4","MultiplyWideningUpperI1","MultiplyWideningUpperI2","MultiplyWideningUpperI4","MultiplyWideningUpperU1","MultiplyWideningUpperU2","MultiplyWideningUpperU4","AddSaturateI1","AddSaturateU1","AddSaturateI2","AddSaturateU2","SubtractSaturateI1","SubtractSaturateU1","SubtractSaturateI2","SubtractSaturateU2","MultiplyRoundedSaturateQ15I2","MinI1","MinI2","MinI4","MinU1","MinU2","MinU4","MaxI1","MaxI2","MaxI4","MaxU1","MaxU2","MaxU4","AverageRoundedU1","AverageRoundedU2","MinR4","MinR8","MaxR4","MaxR8","PseudoMinR4","PseudoMinR8","PseudoMaxR4","PseudoMaxR8","StoreANY"],4:["V128_CONDITIONAL_SELECT","ReplaceScalarD1","ReplaceScalarD2","ReplaceScalarD4","ReplaceScalarD8","ReplaceScalarR4","ReplaceScalarR8","ShuffleD1","BitwiseSelectANY","LoadScalarAndInsertX1","LoadScalarAndInsertX2","LoadScalarAndInsertX4","LoadScalarAndInsertX8","StoreSelectedScalarX1","StoreSelectedScalarX2","StoreSelectedScalarX4","StoreSelectedScalarX8"]},ls={13:[65,-1],14:[65,0],15:[65,1],16:[65,2],17:[65,3],18:[65,4],19:[65,5],20:[65,6],21:[65,7],22:[65,8]},us={463:168,469:174,464:170,470:176},ps={515:[69,40,54],435:[106,40,54],437:[107,40,54],439:[107,40,54],443:[115,40,54],436:[124,41,55],438:[125,41,55],440:[125,41,55],444:[133,41,55],518:[106,40,54],522:[108,40,54],519:[124,41,55],523:[126,41,55],441:[140,42,56],442:[154,43,57],471:[178,40,56],474:[183,40,57],445:[184,40,57],472:[180,41,56],475:[185,41,57],446:[186,41,57],476:[187,42,57],473:[182,43,56],467:[1,52,55],468:[1,53,55],451:[113,40,54],459:[113,40,54],447:[117,40,54],455:[117,40,54],452:[113,41,54],460:[113,41,54],448:[117,41,54],456:[117,41,54],526:[116,40,54],527:[134,41,55],528:[117,40,54],529:[135,41,55],524:[118,40,54],525:[136,41,55],628:[119,40,54],629:[137,41,55],630:[120,40,54],631:[138,41,55],632:[103,40,54],634:[104,40,54],636:[105,40,54],633:[121,41,55],635:[122,41,55],637:[123,41,55]},ds={401:187,402:1,405:187,406:1,409:187,410:1,413:187,414:1,419:187,420:1,423:187,424:1,433:187,434:1,427:187,428:1,65536:187,65537:187,65535:187,65539:1,65540:1,65538:1},_s={351:[106,40,54],369:[106,40,54],371:[106,40,54],355:[107,40,54],359:[108,40,54],373:[108,40,54],375:[108,40,54],363:[109,40,54],367:[110,40,54],387:[111,40,54],391:[112,40,54],381:[113,40,54],383:[114,40,54],385:[115,40,54],395:[116,40,54],397:[117,40,54],393:[118,40,54],352:[124,41,55],356:[125,41,55],360:[126,41,55],364:[127,41,55],388:[129,41,55],368:[128,41,55],392:[130,41,55],382:[131,41,55],384:[132,41,55],386:[133,41,55],396:[134,41,55],398:[135,41,55],394:[136,41,55],353:[146,42,56],357:[147,42,56],361:[148,42,56],365:[149,42,56],354:[160,43,57],358:[161,43,57],362:[162,43,57],366:[163,43,57],399:[70,40,54],403:[71,40,54],421:[72,40,54],407:[74,40,54],425:[76,40,54],411:[78,40,54],431:[73,40,54],417:[75,40,54],429:[77,40,54],415:[79,40,54],400:[81,41,54],404:[82,41,54],422:[83,41,54],408:[85,41,54],426:[87,41,54],412:[89,41,54],432:[84,41,54],418:[86,41,54],430:[88,41,54],416:[90,41,54]},fs={195:399,215:403,203:407,223:417,207:421,231:431,199:411,219:415,211:425,227:429,239:[399,!1,!0],249:[403,!1,!0],243:[407,!1,!0],253:[417,!1,!0],245:[421,!1,!0],257:[431,!1,!0],241:[411,!1,!0],251:[415,!1,!0],247:[425,!1,!0],255:[429,!1,!0],259:[399,65,!0],269:[403,65,!0],263:[407,65,!0],273:[417,65,!0],265:[421,65,!0],277:[431,65,!0],261:[411,65,!0],271:[415,65,!0],267:[425,65,!0],275:[429,65,!0],196:400,216:404,204:408,224:418,208:422,232:432,200:412,220:416,212:426,228:430,260:[400,66,!0],264:[408,66,!0],274:[418,66,!0],266:[422,66,!0],278:[432,66,!0],262:[412,66,!0],272:[416,66,!0],268:[426,66,!0],276:[430,66,!0],197:401,217:65535,205:409,225:419,209:423,233:433,201:413,221:65536,213:427,229:65537,198:402,218:65538,206:410,226:420,210:424,234:434,202:414,222:65539,214:428,230:65540},ms={588:[!0,!1,159],615:[!0,!0,145],575:[!0,!1,155],602:[!0,!0,141],581:[!0,!1,156],608:[!0,!0,142],592:[!0,!1,153],619:[!0,!0,139],570:[!0,!1,"acos"],597:[!0,!0,"acosf"],571:[!0,!1,"acosh"],598:[!0,!0,"acoshf"],576:[!0,!1,"cos"],603:[!0,!0,"cosf"],568:[!0,!1,"asin"],595:[!0,!0,"asinf"],569:[!0,!1,"asinh"],596:[!0,!0,"asinhf"],587:[!0,!1,"sin"],614:[!0,!0,"sinf"],572:[!0,!1,"atan"],599:[!0,!0,"atanf"],573:[!0,!1,"atanh"],600:[!0,!0,"atanhf"],590:[!0,!1,"tan"],617:[!0,!0,"tanf"],577:[!0,!1,"cbrt"],604:[!0,!0,"cbrtf"],579:[!0,!1,"exp"],606:[!0,!0,"expf"],582:[!0,!1,"log"],609:[!0,!0,"logf"],583:[!0,!1,"log2"],610:[!0,!0,"log2f"],584:[!0,!1,"log10"],611:[!0,!0,"log10f"],593:[!1,!1,164],620:[!1,!0,150],594:[!1,!1,165],621:[!1,!0,151],574:[!1,!1,"atan2"],601:[!1,!0,"atan2f"],585:[!1,!1,"pow"],612:[!1,!0,"powf"],390:[!1,!1,"fmod"],389:[!1,!0,"fmodf"]},hs={641:1,642:2,643:4,644:8},bs={641:44,642:46,643:40,644:41},gs={641:58,642:59,643:54,644:55},ys=new Set([20,21,22,23,24,25,26,27,28,29,30]),ws={47:[16,54],48:[16,54],49:[8,54],50:[8,54],51:[4,54],53:[4,56],52:[2,55],54:[2,57]},Ss={1:[16,40],2:[8,40],3:[4,40],5:[4,42],4:[2,41],6:[2,43]},ks=new Set([81,84,85,86,87,82,83,88,89,90,91,92,93]),vs={13:[16],14:[8],15:[4],16:[2]},Es={10:100,11:132,12:164,13:196},Us={6:[44,23],7:[46,26],8:[40,28],9:[41,30]};function Is(e,t){return se(e+2*t)}function xs(e,t){return de(e+2*t)}function Ts(e,t){return le(e+2*t)}function js(e,t){return ue(e+2*t)}function As(e){return ue(e+Xa(4))}function Rs(e,t){const n=ue(As(e)+Xa(5));return ue(n+t*xi)}function Ls(e,t){const n=ue(As(e)+Xa(12));return ue(n+t*xi)}function Cs(e,t,n){if(!n)return!1;for(let r=0;r=40||w(!1,`Expected load opcode but got ${n}`),e.appendU8(n),void 0!==r)e.appendULeb(r);else if(253===n)throw new Error("PREFIX_simd ldloc without a simdOpcode");const o=Vs(t,n,r);e.appendMemarg(t,o)}function Ws(e,t,n,r){n>=54||w(!1,`Expected store opcode but got ${n}`),e.appendU8(n),void 0!==r&&e.appendULeb(r);const o=Vs(t,n,r);e.appendMemarg(t,o),Fs(t),void 0!==r&&Fs(t+8)}function Gs(e,t,n){"number"!=typeof n&&(n=512),n>0&&Ps(t,n),e.lea("pLocals",t)}function qs(e,t,n,r){Ps(t,r),Ha(e,t,n,r,!1)||(Gs(e,t,r),Wa(e,n,r))}function Js(e,t,n,r){if(Ps(t,r),Ga(e,t,n,r,!1))return!0;Gs(e,t,r),Gs(e,n,0),qa(e,r)}function Ys(e,t){return 0!==St.mono_jiterp_is_imethod_var_address_taken(As(e.frame),t)}function Xs(e,t,n,r){if(e.allowNullCheckOptimization&&Ds.has(t)&&!Ys(e,t))return Ba.nullChecksEliminated++,void(Os===t?r&&e.local("cknull_ptr"):(Hs(e,t,40),e.local("cknull_ptr",r?34:33),Os=t));Hs(e,t,40),e.local("cknull_ptr",34),e.appendU8(69),e.block(64,4),Fa(e,n,2),e.endBlock(),r&&e.local("cknull_ptr"),e.allowNullCheckOptimization&&!Ys(e,t)?(Ds.set(t,n),Os=t):Os=-1}function Zs(e,t,n){let r,o=54;const a=ls[n];if(a)e.local("pLocals"),e.appendU8(a[0]),r=a[1],e.appendLeb(r);else switch(n){case 23:e.local("pLocals"),r=xs(t,2),e.i32_const(r);break;case 24:e.local("pLocals"),r=Ts(t,2),e.i32_const(r);break;case 25:e.local("pLocals"),e.i52_const(0),o=55;break;case 27:e.local("pLocals"),e.appendU8(66),e.appendLebRef(t+4,!0),o=55;break;case 26:e.local("pLocals"),e.i52_const(xs(t,2)),o=55;break;case 28:e.local("pLocals"),e.appendU8(67),e.appendF32(function(e,t){return n=e+2*t,St.mono_wasm_get_f32_unaligned(n);var n}(t,2)),o=56;break;case 29:e.local("pLocals"),e.appendU8(68),e.appendF64(function(e,t){return n=e+2*t,St.mono_wasm_get_f64_unaligned(n);var n}(t,2)),o=57;break;default:return!1}e.appendU8(o);const s=Is(t,1);return e.appendMemarg(s,2),Fs(s),"number"==typeof r?$s.set(s,r):$s.delete(s),!0}function Ks(e,t,n){let r=40,o=54;switch(n){case 82:r=44;break;case 83:r=45;break;case 84:r=46;break;case 85:r=47;break;case 86:r=45,o=58;break;case 87:r=47,o=59;break;case 88:break;case 89:r=41,o=55;break;case 90:{const n=Is(t,3);return Js(e,Is(t,1),Is(t,2),n),!0}case 91:return Js(e,Is(t,1),Is(t,2),8),Js(e,Is(t,3),Is(t,4),8),!0;case 92:return Js(e,Is(t,1),Is(t,2),8),Js(e,Is(t,3),Is(t,4),8),Js(e,Is(t,5),Is(t,6),8),!0;case 93:return Js(e,Is(t,1),Is(t,2),8),Js(e,Is(t,3),Is(t,4),8),Js(e,Is(t,5),Is(t,6),8),Js(e,Is(t,7),Is(t,8),8),!0;default:return!1}return e.local("pLocals"),Hs(e,Is(t,2),r),Ws(e,Is(t,1),o),!0}function Qs(e,t,n,r){const o=r>=31&&r<=44||r>=58&&r<=68,a=Is(n,o?2:1),s=Is(n,3),i=Is(n,o?1:2),c=e.allowNullCheckOptimization&&Ds.has(a)&&!Ys(e,a);44!==r&&53!==r&&Xs(e,a,n,!1);let l=54,u=40;switch(r){case 31:u=44;break;case 32:u=45;break;case 33:u=46;break;case 34:u=47;break;case 39:case 49:case 35:break;case 51:case 37:u=42,l=56;break;case 52:case 38:u=43,l=57;break;case 45:case 46:l=58;break;case 47:case 48:l=59;break;case 36:case 50:u=41,l=55;break;case 53:return c||e.block(),e.local("pLocals"),e.i32_const(s),e.i32_const(a),e.i32_const(i),e.callImport("stfld_o"),c?(e.appendU8(26),Ba.nullChecksEliminated++):(e.appendU8(13),e.appendULeb(0),Fa(e,n,2),e.endBlock()),!0;case 40:{const t=Is(n,4);return Gs(e,i,t),e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),qa(e,t),!0}case 54:{const r=Rs(t,Is(n,4));return e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),Gs(e,i,0),e.ptr_const(r),e.callImport("value_copy"),!0}case 55:{const t=Is(n,4);return e.local("cknull_ptr"),0!==s&&(e.i32_const(s),e.appendU8(106)),Gs(e,i,0),qa(e,t),!0}case 44:case 43:return e.local("pLocals"),Hs(e,a,40),0!==s&&(e.i32_const(s),e.appendU8(106)),Ws(e,i,l),!0;default:return!1}return o&&e.local("pLocals"),e.local("cknull_ptr"),o?(e.appendU8(u),e.appendMemarg(s,0),Ws(e,i,l),!0):(Hs(e,i,u),e.appendU8(l),e.appendMemarg(s,0),!0)}function ei(e,t,n,r){const o=r>=31&&r<=44||r>=58&&r<=68,a=Is(n,1),s=Rs(t,Is(n,2)),i=Rs(t,Is(n,3));!function(e,t,n){e.block(),e.ptr_const(t),e.appendU8(45),e.appendMemarg(Xa(0),0),e.appendU8(13),e.appendULeb(0),Fa(e,n,3),e.endBlock()}(e,s,n);let c=54,l=40;switch(r){case 58:l=44;break;case 59:l=45;break;case 60:l=46;break;case 61:l=47;break;case 66:case 73:case 62:break;case 75:case 64:l=42,c=56;break;case 76:case 65:l=43,c=57;break;case 69:case 70:c=58;break;case 71:case 72:c=59;break;case 63:case 74:l=41,c=55;break;case 77:return e.ptr_const(i),Gs(e,a,0),e.callImport("copy_ptr"),!0;case 67:{const t=Is(n,4);return Gs(e,a,t),e.ptr_const(i),qa(e,t),!0}case 80:return e.local("pLocals"),e.ptr_const(i),Ws(e,a,c),!0;default:return!1}return o?(e.local("pLocals"),e.ptr_const(i),e.appendU8(l),e.appendMemarg(0,0),Ws(e,a,c),!0):(e.ptr_const(i),Hs(e,a,l),e.appendU8(c),e.appendMemarg(0,0),!0)}function ti(e,t,n){let r,o,a,s,i="math_lhs32",c="math_rhs32",l=!1;const u=ds[n];if(u){e.local("pLocals");const r=1==u;return Hs(e,Is(t,2),r?43:42),r||e.appendU8(u),Hs(e,Is(t,3),r?43:42),r||e.appendU8(u),e.i32_const(n),e.callImport("relop_fp"),Ws(e,Is(t,1),54),!0}switch(n){case 389:case 390:return si(e,t,n);default:if(s=_s[n],!s)return!1;s.length>3?(r=s[1],o=s[2],a=s[3]):(r=o=s[1],a=s[2])}switch(n){case 363:case 364:case 367:case 368:case 387:case 388:case 391:case 392:{const a=368===n||392===n||364===n||388===n;i=a?"math_lhs64":"math_lhs32",c=a?"math_rhs64":"math_rhs32",e.block(),Hs(e,Is(t,2),r),e.local(i,33),Hs(e,Is(t,3),o),e.local(c,34),l=!0,a&&(e.appendU8(80),e.appendU8(69)),e.appendU8(13),e.appendULeb(0),Fa(e,t,12),e.endBlock(),363!==n&&387!==n&&364!==n&&388!==n||(e.block(),e.local(c),a?e.i52_const(-1):e.i32_const(-1),e.appendU8(a?82:71),e.appendU8(13),e.appendULeb(0),e.local(i),e.appendU8(a?66:65),e.appendBoundaryValue(a?64:32,-1),e.appendU8(a?82:71),e.appendU8(13),e.appendULeb(0),Fa(e,t,13),e.endBlock());break}case 369:case 371:case 373:case 375:Hs(e,Is(t,2),r),e.local(i,34),Hs(e,Is(t,3),o),e.local(c,34),e.i32_const(n),e.callImport(371===n||375===n?"ckovr_u4":"ckovr_i4"),e.block(64,4),Fa(e,t,13),e.endBlock(),l=!0}return e.local("pLocals"),l?(e.local(i),e.local(c)):(Hs(e,Is(t,2),r),Hs(e,Is(t,3),o)),e.appendU8(s[0]),Ws(e,Is(t,1),a),!0}function ni(e,t,n){const r=ps[n];if(!r)return!1;const o=r[1],a=r[2];switch((n<479||n>514)&&e.local("pLocals"),n){case 435:case 437:Hs(e,Is(t,2),o),e.i32_const(1);break;case 439:e.i32_const(0),Hs(e,Is(t,2),o);break;case 443:Hs(e,Is(t,2),o),e.i32_const(-1);break;case 451:case 452:Hs(e,Is(t,2),o),41===o&&e.appendU8(167),e.i32_const(255);break;case 459:case 460:Hs(e,Is(t,2),o),41===o&&e.appendU8(167),e.i32_const(65535);break;case 447:case 448:Hs(e,Is(t,2),o),41===o&&e.appendU8(167),e.i32_const(24),e.appendU8(116),e.i32_const(24);break;case 455:case 456:Hs(e,Is(t,2),o),41===o&&e.appendU8(167),e.i32_const(16),e.appendU8(116),e.i32_const(16);break;case 436:case 438:Hs(e,Is(t,2),o),e.i52_const(1);break;case 440:e.i52_const(0),Hs(e,Is(t,2),o);break;case 444:Hs(e,Is(t,2),o),e.i52_const(-1);break;case 518:case 522:case 526:case 528:case 524:case 628:case 630:Hs(e,Is(t,2),o),e.i32_const(xs(t,3));break;case 519:case 523:case 527:case 529:case 525:case 629:case 631:Hs(e,Is(t,2),o),e.i52_const(xs(t,3));break;default:Hs(e,Is(t,2),o)}return 1!==r[0]&&e.appendU8(r[0]),Ws(e,Is(t,1),a),!0}function ri(e,t,n,r){const o=141===r?t+6:t+8,a=Ls(n,se(o-2));e.local("pLocals"),e.ptr_const(o),e.appendU8(54),e.appendMemarg(a,0),e.callHandlerReturnAddresses.push(o)}function oi(e,t,n,r,o){const a=r>=235&&r<=278;switch(r){case 140:case 141:case 136:case 137:{const a=140===r||141===r,s=t+2*(o=136===r||140===r?Ts(t,1):xs(t,1));return o<=0?e.backBranchOffsets.indexOf(s)>=0?(a&&ri(e,t,n,r),e.cfg.branch(s,!0,0),Ba.backBranchesEmitted++,!0):(s1&&ut(`${Ea(r)} target 0x${s.toString(16)} before start of trace`):e.cfg.trace>0&&ut(`0x${t.toString(16)} ${Ea(r)} target 0x${s.toString(16)} not found in list `+e.backBranchOffsets.map((e=>"0x"+e.toString(16))).join(", ")),St.mono_jiterp_boost_back_branch_target(s),Fa(e,s,5),Ba.backBranchesNotEmitted++,!0):(e.branchTargets.add(s),a&&ri(e,t,n,r),e.cfg.branch(s,!1,0),!0)}case 153:case 151:case 237:case 235:case 154:case 152:{const n=154===r||152===r;o=xs(t,2),Hs(e,Is(t,1),n?41:40),151===r||235===r?e.appendU8(69):152===r?e.appendU8(80):154===r&&(e.appendU8(80),e.appendU8(69));break}default:if(void 0===fs[r])throw new Error(`Unsupported relop branch opcode: ${Ea(r)}`);if(4!==St.mono_jiterp_get_opcode_info(r,1))throw new Error(`Unsupported long branch opcode: ${Ea(r)}`)}if(!o)throw new Error("Branch had no displacement");const s=t+2*o;return o<0?e.backBranchOffsets.indexOf(s)>=0?(e.cfg.branch(s,!0,a?3:1),Ba.backBranchesEmitted++):(s1&&ut(`${Ea(r)} target 0x${s.toString(16)} before start of trace`):e.cfg.trace>0&&ut(`0x${t.toString(16)} ${Ea(r)} target 0x${s.toString(16)} not found in list `+e.backBranchOffsets.map((e=>"0x"+e.toString(16))).join(", ")),St.mono_jiterp_boost_back_branch_target(s),e.block(64,4),Fa(e,s,5),e.endBlock(),Ba.backBranchesNotEmitted++):(e.branchTargets.add(s),e.cfg.branch(s,!1,a?3:1)),!0}function ai(e,t,n,r){const o=fs[r];if(!o)return!1;const a=Array.isArray(o)?o[0]:o,s=_s[a],i=ds[a];if(!s&&!i)return!1;const c=xs(t,3),l=s?s[1]:1===i?43:42;return Hs(e,Is(t,1),l),s||1===i||e.appendU8(i),Array.isArray(o)&&o[1]?(e.appendU8(o[1]),e.appendLeb(xs(t,2))):Hs(e,Is(t,2),l),s||1==i||e.appendU8(i),s?e.appendU8(s[0]):(e.i32_const(a),e.callImport("relop_fp")),oi(e,t,n,r,c)}function si(e,t,n){let r,o,a,s;const i=Is(t,1),c=Is(t,2),l=Is(t,3),u=ms[n];if(!u)return!1;if(r=u[0],o=u[1],"string"==typeof u[2]?a=u[2]:s=u[2],e.local("pLocals"),r){if(Hs(e,c,o?42:43),s)e.appendU8(s);else{if(!a)throw new Error("internal error");e.callImport(a)}return Ws(e,i,o?56:57),!0}if(Hs(e,c,o?42:43),Hs(e,l,o?42:43),s)e.appendU8(s);else{if(!a)throw new Error("internal error");e.callImport(a)}return Ws(e,i,o?56:57),!0}function ii(e,t,n){const r=n>=95&&n<=120,o=n>=115&&n<=120,a=n>=103&&n<=114||n>=128&&n<=135||o,s=n>=109&&n<=114||n>=132&&n<=135||o;let i,c,l=-1,u=0,p=1;o?(i=Is(t,1),c=Is(t,2),l=Is(t,3),u=xs(t,4),p=xs(t,5)):a?s?r?(i=Is(t,1),c=Is(t,2),u=xs(t,3)):(i=Is(t,2),c=Is(t,1),u=xs(t,3)):r?(i=Is(t,1),c=Is(t,2),l=Is(t,3)):(i=Is(t,3),c=Is(t,1),l=Is(t,2)):r?(c=Is(t,2),i=Is(t,1)):(c=Is(t,1),i=Is(t,2));let d,_=54;switch(n){case 95:case 103:case 109:case 115:d=44;break;case 96:case 104:case 110:case 116:d=45;break;case 97:case 105:case 111:case 117:d=46;break;case 98:case 106:case 112:case 118:d=47;break;case 121:case 128:case 132:d=40,_=58;break;case 122:case 129:case 133:d=40,_=59;break;case 99:case 107:case 113:case 119:case 123:case 130:case 134:case 127:d=40;break;case 101:case 125:d=42,_=56;break;case 102:case 126:d=43,_=57;break;case 100:case 108:case 114:case 120:case 124:case 131:case 135:d=41,_=55;break;default:return!1}return Xs(e,c,t,!1),r?(e.local("pLocals"),e.local("cknull_ptr"),o?(Hs(e,l,40),0!==u&&(e.i32_const(u),e.appendU8(106),u=0),1!==p&&(e.i32_const(p),e.appendU8(108)),e.appendU8(106)):a&&l>=0?(Hs(e,l,40),e.appendU8(106)):u<0&&(e.i32_const(u),e.appendU8(106),u=0),e.appendU8(d),e.appendMemarg(u,0),Ws(e,i,_)):127===n?(e.local("cknull_ptr"),Gs(e,i,0),e.callImport("copy_ptr")):(e.local("cknull_ptr"),a&&l>=0?(Hs(e,l,40),e.appendU8(106)):u<0&&(e.i32_const(u),e.appendU8(106),u=0),Hs(e,i,d),e.appendU8(_),e.appendMemarg(u,0)),!0}function ci(e,t,n,r,o){e.block(),Hs(e,r,40),e.local("index",34);let a="cknull_ptr";e.options.zeroPageOptimization&&ns()?(Ba.nullChecksFused++,Hs(e,n,40),a="src_ptr",e.local(a,34)):Xs(e,n,t,!0),e.appendU8(40),e.appendMemarg(Xa(9),2),e.appendU8(73),e.appendU8(13),e.appendULeb(0),Fa(e,t,9),e.endBlock(),e.local(a),e.i32_const(Xa(1)),e.appendU8(106),e.local("index"),1!=o&&(e.i32_const(o),e.appendU8(108)),e.appendU8(106)}function li(e,t,n,r){const o=r<=336&&r>=323||348===r,a=Is(n,o?2:1),s=Is(n,o?1:3),i=Is(n,o?3:2);let c,l,u=54;switch(r){case 348:return e.local("pLocals"),Xs(e,a,n,!0),e.appendU8(40),e.appendMemarg(Xa(9),2),Ws(e,s,54),!0;case 334:return e.local("pLocals"),l=Is(n,4),ci(e,n,a,i,l),Ws(e,s,54),!0;case 345:return e.block(),Hs(e,Is(n,1),40),Hs(e,Is(n,2),40),Hs(e,Is(n,3),40),e.callImport("stelem_ref"),e.appendU8(13),e.appendULeb(0),Fa(e,n,10),e.endBlock(),!0;case 332:case 328:case 327:case 341:l=4,c=40;break;case 323:l=1,c=44;break;case 324:l=1,c=45;break;case 338:case 337:l=1,c=40,u=58;break;case 325:l=2,c=46;break;case 326:l=2,c=47;break;case 340:case 339:l=2,c=40,u=59;break;case 330:case 343:l=4,c=42,u=56;break;case 329:case 342:l=8,c=41,u=55;break;case 331:case 344:l=8,c=43,u=57;break;case 333:{const t=Is(n,4);return e.local("pLocals"),e.i32_const(Is(n,1)),e.appendU8(106),ci(e,n,a,i,t),qa(e,t),Ps(Is(n,1),t),!0}case 346:{const r=Is(n,5),o=Rs(t,Is(n,4));return ci(e,n,a,i,r),Gs(e,s,0),e.ptr_const(o),e.callImport("value_copy"),!0}case 347:{const t=Is(n,5);return ci(e,n,a,i,t),Gs(e,s,0),qa(e,t),!0}default:return!1}return o?(e.local("pLocals"),ci(e,n,a,i,l),e.appendU8(c),e.appendMemarg(0,0),Ws(e,s,u)):(ci(e,n,a,i,l),Hs(e,s,c),e.appendU8(u),e.appendMemarg(0,0)),!0}function ui(){if(void 0!==Bs)return Bs;try{const e=function(){const e=new Aa(0);e.defineType("test",{},64,!0),e.defineFunction({type:"test",name:"test",export:!0,locals:{}},(()=>{e.i32_const(0),e.appendSimd(17),e.appendU8(26),e.appendU8(11)})),e.appendU32(1836278016),e.appendU32(1),e.generateTypeSection(),e.emitImportsAndFunctions(!1);const t=e.getArrayView();return new WebAssembly.Module(t)}();Bs=!!e}catch(e){ut("Disabling WASM SIMD support due to JIT failure",e),Bs=!1}return Bs}function pi(e,t,n){const r=`${t}_${n.toString(16)}`;return"object"!=typeof e.importedFunctions[r]&&e.defineImportedFunction("s",r,t,!1,n),r}function di(e,t,n,r,o,a){if(e.options.enableSimd&&ui())switch(o){case 2:if(function(e,t,n){const r=St.mono_jiterp_get_simd_opcode(1,n);if(r>=0)return ks.has(n)?(e.local("pLocals"),Hs(e,Is(t,2),40),e.appendSimd(r,!0),e.appendMemarg(0,0),_i(e,t)):(fi(e,t),e.appendSimd(r),_i(e,t)),!0;const o=Es[n];if(o)return fi(e,t),e.appendSimd(o),Ws(e,Is(t,1),54),!0;switch(n){case 6:case 7:case 8:case 9:{const r=Us[n];return e.local("pLocals"),e.v128_const(0),Hs(e,Is(t,2),r[0]),e.appendSimd(r[1]),e.appendU8(0),Ws(e,Is(t,1),253,11),!0}case 14:return fi(e,t,7),_i(e,t),!0;case 15:return fi(e,t,8),_i(e,t),!0;case 16:return fi(e,t,9),_i(e,t),!0;case 17:return fi(e,t,10),_i(e,t),!0;default:return!1}}(e,t,a))return!0;break;case 3:if(function(e,t,n){const r=St.mono_jiterp_get_simd_opcode(2,n);if(r>=0){const o=ys.has(n),a=ws[n];if(o)e.local("pLocals"),Hs(e,Is(t,2),253,0),Hs(e,Is(t,3),40),e.appendSimd(r),_i(e,t);else if(Array.isArray(a)){const n=Ns(e,Is(t,3)),o=a[0];if("number"!=typeof n)return dt(`${e.functions[0].name}: Non-constant lane index passed to ExtractScalar`),!1;if(n>=o||n<0)return dt(`${e.functions[0].name}: ExtractScalar index ${n} out of range (0 - ${o-1})`),!1;e.local("pLocals"),Hs(e,Is(t,2),253,0),e.appendSimd(r),e.appendU8(n),Ws(e,Is(t,1),a[1])}else mi(e,t),e.appendSimd(r),_i(e,t);return!0}switch(n){case 187:return Hs(e,Is(t,2),40),Hs(e,Is(t,3),253,0),e.appendSimd(11),e.appendMemarg(0,0),!0;case 10:case 11:return mi(e,t),e.appendSimd(214),e.appendSimd(195),11===n&&e.appendU8(69),Ws(e,Is(t,1),54),!0;case 12:case 13:{const r=13===n,o=r?71:65;return e.local("pLocals"),Hs(e,Is(t,2),253,0),e.local("math_lhs128",34),Hs(e,Is(t,3),253,0),e.local("math_rhs128",34),e.appendSimd(o),e.local("math_lhs128"),e.local("math_lhs128"),e.appendSimd(o),e.local("math_rhs128"),e.local("math_rhs128"),e.appendSimd(o),e.appendSimd(80),e.appendSimd(77),e.appendSimd(80),e.appendSimd(r?195:163),Ws(e,Is(t,1),54),!0}case 43:{const n=Is(t,3),r=Ns(e,n);return e.local("pLocals"),Hs(e,Is(t,2),253,0),"object"==typeof r?(e.appendSimd(12),e.appendBytes(r)):Hs(e,n,253,0),e.appendSimd(14),_i(e,t),!0}case 44:case 45:return function(e,t,n){const r=16/n,o=Is(t,3),a=Ns(e,o);if(2!==r&&4!==r&&w(!1,"Unsupported shuffle element size"),e.local("pLocals"),Hs(e,Is(t,2),253,0),"object"==typeof a){const t=new Uint8Array(Ti),o=2===r?new Uint16Array(a.buffer,a.byteOffset,n):new Uint32Array(a.buffer,a.byteOffset,n);for(let e=0,a=0;e=0){const o=Ss[n],a=vs[n];if(Array.isArray(o)){const n=o[0],a=Ns(e,Is(t,3));if("number"!=typeof a)return dt(`${e.functions[0].name}: Non-constant lane index passed to ReplaceScalar`),!1;if(a>=n||a<0)return dt(`${e.functions[0].name}: ReplaceScalar index ${a} out of range (0 - ${n-1})`),!1;e.local("pLocals"),Hs(e,Is(t,2),253,0),Hs(e,Is(t,4),o[1]),e.appendSimd(r),e.appendU8(a),_i(e,t)}else if(Array.isArray(a)){const n=a[0],o=Ns(e,Is(t,4));if("number"!=typeof o)return dt(`${e.functions[0].name}: Non-constant lane index passed to store method`),!1;if(o>=n||o<0)return dt(`${e.functions[0].name}: Store lane ${o} out of range (0 - ${n-1})`),!1;Hs(e,Is(t,2),40),Hs(e,Is(t,3),253,0),e.appendSimd(r),e.appendMemarg(0,0),e.appendU8(o)}else!function(e,t){e.local("pLocals"),Hs(e,Is(t,2),253,0),Hs(e,Is(t,3),253,0),Hs(e,Is(t,4),253,0)}(e,t),e.appendSimd(r),_i(e,t);return!0}switch(n){case 0:return e.local("pLocals"),Hs(e,Is(t,3),253,0),Hs(e,Is(t,4),253,0),Hs(e,Is(t,2),253,0),e.appendSimd(82),_i(e,t),!0;case 7:{const n=Ns(e,Is(t,4));if("object"!=typeof n)return dt(`${e.functions[0].name}: Non-constant indices passed to PackedSimd.Shuffle`),!1;for(let t=0;t<32;t++){const r=n[t];if(r<0||r>31)return dt(`${e.functions[0].name}: Shuffle lane index #${t} (${r}) out of range (0 - 31)`),!1}return e.local("pLocals"),Hs(e,Is(t,2),253,0),Hs(e,Is(t,3),253,0),e.appendSimd(13),e.appendBytes(n),_i(e,t),!0}default:return!1}}(e,t,a))return!0}switch(n){case 640:if(e.options.enableSimd&&ui()){e.local("pLocals");const n=Ee().slice(t+4,t+4+Ti);e.v128_const(n),_i(e,t),$s.set(Is(t,1),n)}else Gs(e,Is(t,1),Ti),e.ptr_const(t+4),qa(e,Ti);return!0;case 641:case 642:case 643:case 644:{const r=hs[n],o=Ti/r,a=Is(t,1),s=Is(t,2),i=bs[n],c=gs[n];for(let t=0;t0&&(Ri.push(["trace_eip","trace_eip",Oi]),Ri.push(["trace_args","trace_eip",Mi]));const e=(e,t)=>{for(let n=0;n>>0,bi.operand2=t>>>0}function Fi(e,t,n,r){if("number"==typeof r)St.mono_jiterp_adjust_abort_count(r,1),r=Ea(r);else{let e=Ui[r];"number"!=typeof e?e=1:e++,Ui[r]=e}Ii[e].abortReason=r}function Pi(e,t){if(!l.runtimeReady)return;if(gi&&void 0===e||(gi=is()),!gi.enableStats&&void 0!==e)return;const n=Ba.backBranchesEmitted/(Ba.backBranchesEmitted+Ba.backBranchesNotEmitted)*100,r=St.mono_jiterp_get_rejected_trace_count(),o=gi.eliminateNullChecks?Ba.nullChecksEliminated.toString():"off",a=gi.zeroPageOptimization?Ba.nullChecksFused.toString()+(ns()?"":" (disabled)"):"off",s=gi.enableBackwardBranches?`emitted: ${Ba.backBranchesEmitted}, failed: ${Ba.backBranchesNotEmitted} (${n.toFixed(1)}%)`:": off",i=Ba.jitCallsCompiled?gi.directJitCalls?`direct jit calls: ${Ba.directJitCallsCompiled} (${(Ba.directJitCallsCompiled/Ba.jitCallsCompiled*100).toFixed(1)}%)`:"direct jit calls: off":"";if(ut(`// jitted ${Ba.bytesGenerated} bytes; ${Ba.tracesCompiled} traces (${(Ba.tracesCompiled/Ba.traceCandidates*100).toFixed(1)}%) (${r} rejected); ${Ba.jitCallsCompiled} jit_calls; ${Ba.entryWrappersCompiled} interp_entries`),ut(`// cknulls eliminated: ${o}, fused: ${a}; back-branches ${s}; ${i}`),ut(`// time: ${0|Da.generation}ms generating, ${0|Da.compilation}ms compiling wasm.`),!t){if(gi.countBailouts){const e=Object.values(Ii);e.sort(((e,t)=>(t.bailoutCount||0)-(e.bailoutCount||0)));for(let e=0;et.hitCount-e.hitCount)),ut("// hottest failed traces:");for(let e=0,n=0;e=0)){if(t[e].abortReason){if(t[e].abortReason.startsWith("mono_icall_")||t[e].abortReason.startsWith("ret."))continue;switch(t[e].abortReason){case"trace-too-small":case"trace-too-big":case"call":case"callvirt.fast":case"calli.nat.fast":case"calli.nat":case"call.delegate":case"newobj":case"newobj_vt":case"newobj_slow":case"switch":case"rethrow":case"end-of-body":case"ret":case"intrins_marvin_block":case"intrins_ascii_chars_to_uppercase":continue}}n++,ut(`${t[e].name} @${t[e].ip} (${t[e].hitCount} hits) ${t[e].abortReason}`)}const n=[];for(const t in e)n.push([t,e[t]]);n.sort(((e,t)=>t[1]-e[1])),ut("// heat:");for(let e=0;e0?Ui[t]=n:delete Ui[t]}const e=Object.keys(Ui);e.sort(((e,t)=>Ui[t]-Ui[e]));for(let t=0;tPi(e)),15e3)}}let zi=!1;function Vi(){if(zi)throw new Error("GC is already locked");zi=!0}function Hi(){if(!zi)throw new Error("GC is not locked");zi=!1}async function Wi(e){const t=u.config.resources.lazyAssembly;if(!t)throw new Error("No assemblies have been marked as lazy-loadable. Use the 'BlazorWebAssemblyLazyLoad' item group in your project file to enable lazy loading an assembly.");if(!t[e])throw new Error(`${e} must be marked with 'BlazorWebAssemblyLazyLoad' item group in your project file to allow lazy-loading.`);const n={name:e,hash:t[e],behavior:"assembly"};if(u.loadedAssemblies.includes(e))return!1;const r=function(e,t){const n=e.lastIndexOf(".");if(n<0)throw new Error(`No extension to replace in '${e}'`);return e.substring(0,n)+".pdb"}(n.name),o=u.hasDebuggingEnabled(u.config)&&Object.prototype.hasOwnProperty.call(t,r),a=u.retrieve_asset_download(n);let s=null,i=null;if(o){const e=t[r]?u.retrieve_asset_download({name:r,hash:t[r],behavior:"pdb"}):Promise.resolve(null),[n,o]=await Promise.all([a,e]);s=new Uint8Array(n),i=o?new Uint8Array(o):null}else{const e=await a;s=new Uint8Array(e),i=null}return l.javaScriptExports.load_lazy_assembly(s,i),!0}async function Gi(e){const t=u.config.resources.satelliteResources;t&&await Promise.all(e.filter((e=>Object.prototype.hasOwnProperty.call(t,e))).map((e=>{const n=[];for(const r in t[e]){const o={name:r,hash:t[e][r],behavior:"resource",culture:e};n.push(u.retrieve_asset_download(o))}return n})).reduce(((e,t)=>e.concat(t)),new Array).map((async e=>{const t=await e;l.javaScriptExports.load_satellite_assembly(new Uint8Array(t))})))}const qi=64;let Ji,Yi,Xi,Zi=0;const Ki=[],Qi={};function ec(){return Yi||(Yi=[es("interp_entry_prologue",Za("mono_jiterp_interp_entry_prologue")),es("interp_entry",Za("mono_jiterp_interp_entry")),es("unbox",Za("mono_jiterp_object_unbox")),es("stackval_from_data",Za("mono_jiterp_stackval_from_data"))],Yi)}let tc;function nc(){if(Ki.length<=0)return;const e=4*Ki.length+1;let t=Ji;if(t?t.clear(e):(Ji=t=new Aa(e),t.defineType("unbox",{pMonoObject:127},127,!0),t.defineType("interp_entry_prologue",{pData:127,this_arg:127},127,!0),t.defineType("interp_entry",{pData:127,res:127},64,!0),t.defineType("stackval_from_data",{type:127,result:127,value:127},64,!0)),t.options.wasmBytesLimit<=Ba.bytesGenerated)return void(Ki.length=0);const n=Oa();let r=0,o=!0,a=!1;try{t.appendU32(1836278016),t.appendU32(1);for(let e=0;eyc[St.mono_jiterp_type_to_ldind(e)])),this.enableDirect=is().directJitCalls&&!this.noWrapper&&this.wasmNativeReturnType&&(0===this.wasmNativeSignature.length||this.wasmNativeSignature.every((e=>e))),this.enableDirect&&(this.target=this.addr);let i=this.target.toString(16);const c=uc++;this.name=`${this.enableDirect?"jcp":"jcw"}_${i}_${c.toString(16)}`}}function mc(e){let t=pc[e];return t||(e>=pc.length&&(pc.length=e+1),cc||(cc=za()),pc[e]=t=cc.get(e)),t}let hc;function bc(){if(void 0!==lc)return lc;try{hc=function(){const e=new Aa(0);e.defineType("jit_call_cb",{cb_data:127},64,!0),e.defineType("do_jit_call",{unused:127,cb_data:127,thrown:127},64,!0),e.defineImportedFunction("i","jit_call_cb","jit_call_cb",!0),e.defineFunction({type:"do_jit_call",name:"do_jit_call_indirect",export:!0,locals:{}},(()=>{e.block(64,6),e.local("cb_data"),e.callImport("jit_call_cb"),e.appendU8(25),e.local("thrown"),e.i32_const(1),e.appendU8(54),e.appendMemarg(0,0),e.endBlock(),e.appendU8(11)})),e.appendU32(1836278016),e.appendU32(1),e.generateTypeSection(),e.emitImportsAndFunctions(!1);const t=e.getArrayView();return new WebAssembly.Module(t)}(),lc=!0}catch(e){ut("Disabling WASM EH support due to JIT failure",e),lc=!1}return lc}function gc(){if(0===_c.length)return;let e=ic;if(e?e.clear(0):(ic=e=new Aa(0),e.defineType("trampoline",{ret_sp:127,sp:127,ftndesc:127,thrown:127},64,!0)),e.options.wasmBytesLimit<=Ba.bytesGenerated)return void(_c.length=0);e.options.enableWasmEh&&(bc()||(ss({enableWasmEh:!1}),e.options.enableWasmEh=!1));const t=Oa();let n=0,r=!0,o=!1;const a=[];try{cc||(cc=za()),e.appendU32(1836278016),e.appendU32(1);for(let t=0;t<_c.length;t++){const n=_c[t],r={};if(n.enableDirect){n.hasThisReference&&(r.this=127);for(let e=0;e0?t[0]:void 0}catch(t){throw new Error(`Get culture info failed for culture = ${e} with error: ${t}`)}}const Cc="MMMM",$c="yyyy",Nc="d";function Dc(e,t,n,r){let o=n;const a=t.indexOf(n);if(-1==a||-1!=a&&t.length>a+n.length&&" "!=t[a+n.length]&&","!=t[a+n.length]&&"،"!=t[a+n.length]){const a=r.format(e).toLowerCase();o=t.split(/,| /).filter((e=>!a.split(/,| /).includes(e)&&e[0]==n[0]))[0]}return o}async function Bc(e,t){try{const n=await Oc(e,t);return u.mono_exit(n),n}catch(e){try{u.mono_exit(1,e)}catch(e){}return e&&"number"==typeof e.status?e.status:1}}async function Oc(e,n){!function(e,n){const r=n.length+1,o=t._malloc(4*r);let a=0;t.setValue(o+4*a,St.mono_wasm_strdup(e),"i32"),a+=1;for(let e=0;e{const t=setInterval((()=>{1==l.waitForDebugger&&(clearInterval(t),e())}),100)})));const r=Mc(e);return l.javaScriptExports.call_entry_point(r,n)}function Mc(e){u.assert_runtime_running(),fr();const t=wr(e);if(!t)throw new Error("Could not find assembly: "+e);let n=0;1==l.waitForDebugger&&(n=1);const r=St.mono_wasm_assembly_get_entry_point(t,n);if(!r)throw new Error("Could not find entry point for assembly: "+e);return r}let Fc,Pc;const zc={},Vc=Symbol.for("wasm type");function Hc(e){return"undefined"!=typeof SharedArrayBuffer?e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer:e.buffer instanceof ArrayBuffer}function Wc(e,t,n){switch(!0){case null===t:case void 0===t:return void n.clear();case"symbol"==typeof t:case"string"==typeof t:return void ll._create_uri_ref(t,n.address);default:return void Jc(e,t,n)}}function Gc(e){il();const t=Be();try{return qc(e,t,!1),t.value}finally{t.release()}}function qc(e,t,n){if(il(),A(t))throw new Error("Expected (value, WasmRoot, boolean)");switch(!0){case null===e:case void 0===e:return void t.clear();case"number"==typeof e:{let n;return(0|e)===e?(X(zc._box_buffer,e),n=zc._class_int32):e>>>0===e?(G(zc._box_buffer,e),n=zc._class_uint32):(re(zc._box_buffer,e),n=zc._class_double),void kt.mono_wasm_box_primitive_ref(n,zc._box_buffer,8,t.address)}case"string"==typeof e:return void ot(e,t);case"symbol"==typeof e:return void at(e,t);case"boolean"==typeof e:return z(zc._box_buffer,e),void kt.mono_wasm_box_primitive_ref(zc._class_boolean,zc._box_buffer,4,t.address);case!0===Wr(e):return void function(e,t){if(!e)return t.clear(),null;const n=Dr(e),r=ll._create_tcs(),o={tcs_gc_handle:r};Or(o,r),e.then((e=>{ll._set_tcs_result_ref(r,e)}),(e=>{ll._set_tcs_failure(r,e?e.toString():"")})).finally((()=>{Br(n),Mr(o,r)})),ll._get_tcs_task_ref(r,t.address)}(e,t);case"Date"===e.constructor.name:return void ll._create_date_time_ref(e.getTime(),t.address);default:return void Jc(n,e,t)}}function Jc(e,t,n){if(n.clear(),null!=t)if(void 0===t[Lr]){if(t[Cr]&&(function(e,t,n){e!==x&&e!==I?ll._get_cs_owned_object_by_js_handle_ref(e,t?1:0,n):X(n,0)}(t[Cr],e,n.address),n.value||delete t[Cr]),!n.value){const r=t[Vc],o=void 0===r?0:r,a=Dr(t);ll._create_cs_owned_proxy_ref(a,o,e?1:0,n.address)}}else wl(Fr(t),n.address)}function Yc(e,n){if(!Hc(e)||!e.BYTES_PER_ELEMENT)throw new Error("Object '"+e+"' is not a typed array");{const r=e[Vc],o=function(e){il();const n=e.length*e.BYTES_PER_ELEMENT,r=t._malloc(n),o=Ee(),a=new Uint8Array(o.buffer,r,n);return a.set(new Uint8Array(e.buffer,e.byteOffset,n)),a}(e);kt.mono_wasm_typed_array_new_ref(o.byteOffset,e.length,e.BYTES_PER_ELEMENT,r,n.address),t._free(o.byteOffset)}}function Xc(e){const t=Be();try{return Yc(e,t),t.value}finally{t.release()}}function Zc(e){if("number"!=typeof e)throw new Error(`Expected numeric value for enum argument, got '${e}'`);return 0|e}const Kc=/[^A-Za-z0-9_$]/g,Qc=new Map,el=new Map,tl=new Map;function nl(e,t,n,r){let o=null,a=null,s=null;if(r){s=Object.keys(r),a=new Array(s.length);for(let e=0,t=s.length;e=512)throw new Error(`Got marshaling error ${t} when attempting to unbox object at address ${e.value} (root located at ${e.address})`);let r=v;if((4===t||7==t)&&(r=ie(n),r<1024))throw new Error(`Got invalid MonoType ${r} for object at address ${e.value} (root located at ${e.address})`);return function(e,t,n,r){switch(t){case 0:return null;case 26:case 27:throw new Error("int64 not available");case 3:case 29:return rt(e);case 4:throw new Error("no idea on how to unbox value types");case 5:return function(e){return e.value===S?null:function(e){let t=zr(e);if(t)Fr(t);else{t=function(...e){return Fr(t),(0,t[fl])(...e)};const n=Be();wl(e,n.address);try{if(void 0===t[fl]){const r=kt.mono_wasm_get_delegate_invoke_ref(n.address),o=rl(r,sl(r,n),!0);if(t[fl]=o.bind({this_arg_gc_handle:e}),!t[fl])throw new Error("System.Delegate Invoke method can not be resolved.")}}finally{n.release()}Or(t,e)}return t}(ll._get_js_owned_object_gc_handle_ref(e.address))}(e);case 6:return function(e){if(e.value===S)return null;if(!Hr)throw new Error("Promises are not supported thus 'System.Threading.Tasks.Task' can not work in this context.");const t=ll._get_js_owned_object_gc_handle_ref(e.address);let n=zr(t);if(!n){const r=()=>Mr(n,t),{promise:o,promise_control:a}=y(r,r);n=o,ll._setup_js_cont_ref(e.address,a),Or(n,t)}return n}(e);case 7:return function(e){if(e.value===S)return null;const t=ll._try_get_cs_owned_object_js_handle_ref(e.address,0);if(t){if(t===I)throw new Error("Cannot access a disposed JSObject at "+e.value);return Nr(t)}const n=ll._get_js_owned_object_gc_handle_ref(e.address);let r=zr(n);return A(r)&&(r=new ManagedObject,Or(r,n)),r}(e);case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:throw new Error("Marshaling of primitive arrays are not supported.");case 20:return new Date(ll._get_date_value_ref(e.address));case 21:case 22:return ll._object_to_string_ref(e.address);case 23:return function(e){return Nr(ll._get_cs_owned_object_js_handle_ref(e.address,0))}(e);case 30:return;default:throw new Error(`no idea on how to unbox object of MarshalType ${t} at offset ${e.value} (root address is ${e.address})`)}}(e,t)}function bl(e){if(0===e.value)return;const t=zc._unbox_buffer,n=kt.mono_wasm_try_unbox_primitive_and_get_type_ref(e.address,t,zc._unbox_buffer_size);switch(n){case 1:return _e(t);case 25:case 32:return ie(t);case 24:return be(t);case 2:return ge(t);case 8:return 0!==_e(t);case 28:return String.fromCharCode(_e(t));case 0:return null;default:return hl(e,n,t)}}function gl(e){if(il(),e===k)return null;const t=Be(e);try{return yl(t)}finally{t.release()}}function yl(e){if(e.value===k)return null;const t=e.address,n=Be(),r=n.address;try{const e=kt.mono_wasm_array_length_ref(t),a=new Array(e);for(let s=0;s0&&Array.isArray(e[0])&&(e[0]=function(e,t,n){const r=Be();kt.mono_wasm_string_array_new_ref(e.length,r.address);const o=Be(S),a=r.address,s=o.address;try{for(let t=0;tnew RegExp("^((?![0-9]).)*$").test(e)));return e&&0!=e.length?e.join(" "):""}return a}function xl(e){try{return new Intl.Locale(e).weekInfo}catch(t){try{return new Intl.Locale(e).getWeekInfo()}catch(e){return}}}const Tl=[function(e){Po&&(globalThis.clearTimeout(Po),Po=void 0),Po=t.safeSetTimeout(mono_wasm_schedule_timer_tick,e)},function(e,t,n,r,o){if(!0!==l.mono_wasm_runtime_is_ready)return;const a=Ee(),s=0!==e?Qe(e).concat(".dll"):"",i=It(new Uint8Array(a.buffer,t,n));let c;r&&(c=It(new Uint8Array(a.buffer,r,o))),zt({eventName:"AssemblyLoaded",assembly_name:s,assembly_b64:i,pdb_b64:c})},function(e,t){const r=Qe(t);n.logging&&"function"==typeof n.logging.debugger&&n.logging.debugger(e,r)},function(e,t,n,r){const o={res_ok:e,res:{id:t,value:It(new Uint8Array(Ee().buffer,n,r))}};Tt.has(t)&&pt(`Adding an id (${t}) that already exists in commands_received`),Tt.set(t,o)},function mono_wasm_fire_debugger_agent_message_with_data(e,t){mono_wasm_fire_debugger_agent_message_with_data_to_pause(It(new Uint8Array(Ee().buffer,e,t)))},mono_wasm_fire_debugger_agent_message_with_data_to_pause,function(){++Vo,t.safeSetTimeout(Go,0)},function(e,n,r,o,a,s,i){if(r||w(!1,"expected instruction pointer"),gi||(gi=is()),!gi.enableTraces)return 1;if(gi.wasmBytesLimit<=Ba.bytesGenerated)return 1;let c,u=Ii[r];if(u||(Ii[r]=u=new ki(r,o,i)),Ba.traceCandidates++,gi.estimateHeat||wi.length>0||u.isVerbose){const e=St.mono_wasm_method_get_full_name(n);c=Qe(e),t._free(e)}const p=Qe(St.mono_wasm_method_get_name(n));u.name=c||p;const d=ue(Xa(4)+e),_=ue(Xa(11)+d),f=ue(Xa(10)+d);let m=_?new Uint16Array(Ee().buffer,f,_):null;if(m&&r!==a){const e=(r-a)/2;let t=!1;for(let n=0;ne){t=!0;break}t||(m=null)}const h=function(e,t,n,r,o,a,s){let i=Ai;i?i.clear(8):(Ai=i=new Aa(8),function(e){e.defineType("trace",{frame:127,pLocals:127,cinfo:127},127,!0),e.defineType("bailout",{retval:127,base:127,reason:127},127,!0),e.defineType("copy_ptr",{dest:127,src:127},64,!0),e.defineType("value_copy",{dest:127,src:127,klass:127},64,!0),e.defineType("entry",{imethod:127},127,!0),e.defineType("strlen",{ppString:127,pResult:127},127,!0),e.defineType("getchr",{ppString:127,pIndex:127,pResult:127},127,!0),e.defineType("getspan",{destination:127,span:127,index:127,element_size:127},127,!0),e.defineType("overflow_check_i4",{lhs:127,rhs:127,opcode:127},127,!0),e.defineType("mathop_d_d",{value:124},124,!0),e.defineType("mathop_dd_d",{lhs:124,rhs:124},124,!0),e.defineType("mathop_f_f",{value:125},125,!0),e.defineType("mathop_ff_f",{lhs:125,rhs:125},125,!0),e.defineType("fmaf",{x:125,y:125,z:125},125,!0),e.defineType("fma",{x:124,y:124,z:124},124,!0),e.defineType("trace_eip",{traceId:127,eip:127},64,!0),e.defineType("newobj_i",{ppDestination:127,vtable:127},127,!0),e.defineType("newstr",{ppDestination:127,length:127},127,!0),e.defineType("localloc",{destination:127,len:127,frame:127},64,!0),e.defineType("ld_del_ptr",{ppDestination:127,ppSource:127},64,!0),e.defineType("ldtsflda",{ppDestination:127,offset:127},64,!0),e.defineType("gettype",{destination:127,source:127},127,!0),e.defineType("castv2",{destination:127,source:127,klass:127,opcode:127},127,!0),e.defineType("hasparent",{klass:127,parent:127},127,!0),e.defineType("imp_iface",{vtable:127,klass:127},127,!0),e.defineType("imp_iface_s",{obj:127,vtable:127,klass:127},127,!0),e.defineType("box",{vtable:127,destination:127,source:127,vt:127},64,!0),e.defineType("conv",{destination:127,source:127,opcode:127},127,!0),e.defineType("relop_fp",{lhs:124,rhs:124,opcode:127},127,!0),e.defineType("safepoint",{frame:127,ip:127},64,!0),e.defineType("hashcode",{ppObj:127},127,!0),e.defineType("try_hash",{ppObj:127},127,!0),e.defineType("hascsize",{ppObj:127},127,!0),e.defineType("hasflag",{klass:127,dest:127,sp1:127,sp2:127},64,!0),e.defineType("array_rank",{destination:127,source:127},127,!0),e.defineType("stfld_o",{locals:127,fieldOffsetBytes:127,targetLocalOffsetBytes:127,sourceLocalOffsetBytes:127},127,!0),e.defineType("notnull",{ptr:127,expected:127,traceIp:127,ip:127},64,!0),e.defineType("cmpxchg_i32",{dest:127,newVal:127,expected:127},127,!0),e.defineType("cmpxchg_i64",{dest:127,newVal:127,expected:127,oldVal:127},64,!0),e.defineType("transfer",{displacement:127,trace:127,frame:127,locals:127,cinfo:127},127,!0),e.defineType("stelem_ref",{o:127,aindex:127,ref:127},127,!0),e.defineType("simd_p_p",{arg0:127,arg1:127},64,!0),e.defineType("simd_p_pp",{arg0:127,arg1:127,arg2:127},64,!0),e.defineType("simd_p_ppp",{arg0:127,arg1:127,arg2:127,arg3:127},64,!0);const t=Bi();for(let n=0;na.indexOf(e)>=0))>=0;h&&!a&&w(!1,"Expected methodFullName if trace is instrumented");const b=h?Ei++:0;h&&(ut(`instrumenting: ${a}`),vi[b]=new Si(a)),i.compressImportNames=!h;try{i.appendU32(1836278016),i.appendU32(1),i.generateTypeSection();const t={disp:127,cknull_ptr:127,dest_ptr:127,src_ptr:127,memop_dest:127,memop_src:127,index:127,count:127,math_lhs32:127,math_rhs32:127,math_lhs64:126,math_rhs64:126,temp_f32:125,temp_f64:124,backbranched:127};i.options.enableSimd&&(t.v128_zero=123,t.math_lhs128=123,t.math_rhs128=123);let o=!0,a=0;if(i.defineFunction({type:"trace",name:u,export:!0,locals:t},(()=>{if(i.base=n,i.frame=e,662!==se(n))throw new Error(`Expected *ip to be MINT_TIER_PREPARE_JITERPRETER but was ${se(n)}`);return i.cfg.initialize(r,s,h?1:0),a=function(e,t,n,r,o,a,s,i){let c=!0,l=!1,u=!0,p=!1,d=!1,_=!1,f=0,m=0,h=0;const b=n;Ms();let g=n+=2*St.mono_jiterp_get_opcode_info(664,1);for(a.cfg.entry(n);n&&n;){if(a.cfg.ip=n,n>=o){Fi(b,0,0,"end-of-body"),s&&ut(`instrumented trace ${t} exited at end of body @${n.toString(16)}`);break}const y=3840-a.bytesGeneratedSoFar-a.cfg.overheadBytes;if(a.size>=y){Fi(b,0,0,"trace-too-big"),s&&ut(`instrumented trace ${t} exited because of size limit at @${n.toString(16)} (spaceLeft=${y}b)`);break}let S=se(n);const k=St.mono_jiterp_get_opcode_info(S,2),v=St.mono_jiterp_get_opcode_info(S,3),E=St.mono_jiterp_get_opcode_info(S,1),U=S>=645&&S<=647,I=U?S-645+2:0,x=U?Is(n,1+I):0;S>=0&&S<673||w(!1,`invalid opcode ${S}`);const T=U?cs[I][x]:Ea(S),j=n,A=a.options.noExitBackwardBranches&&Cs(n,r,i),R=a.branchTargets.has(n),L=A||R||c&&i,C=h+m+a.branchTargets.size;let $=!1,N=Qa(S);switch(A&&a.backBranchOffsets.push(n),L&&(d=!1,_=!1,zs(a,n,A),l=!0,u=!0,Ms(),h=0),N<-1&&l&&(N=-2===N?2:0),c=!1,279===S||(yi.indexOf(S)>=0?(Fa(a,n,23),S=666):d&&(S=666)),S){case 666:d&&(_||a.appendU8(0),_=!0);break;case 321:case 322:qs(a,Is(n,1),0,Is(n,2));break;case 320:Gs(a,Is(n,1)),Hs(a,Is(n,2),40),a.local("frame"),a.callImport("localloc");break;case 294:Hs(a,Is(n,1),40),Wa(a,0,Is(n,2));break;case 318:{const e=Is(n,3),t=Is(n,2),r=Is(n,1),o=Ns(a,e);0!==o&&("number"!=typeof o?(Hs(a,e,40),a.local("count",34),a.block(64,4)):(a.i32_const(o),a.local("count",33)),Hs(a,r,40),a.local("dest_ptr",34),a.appendU8(69),Hs(a,t,40),a.local("src_ptr",34),a.appendU8(69),a.appendU8(114),a.block(64,4),Fa(a,n,2),a.endBlock(),"number"==typeof o&&Ga(a,0,0,o,!1,"dest_ptr","src_ptr")||(a.local("dest_ptr"),a.local("src_ptr"),a.local("count"),a.appendU8(252),a.appendU8(10),a.appendU8(0),a.appendU8(0)),"number"!=typeof o&&a.endBlock());break}case 319:{const e=Is(n,3),t=Is(n,2);Xs(a,Is(n,1),n,!0),Hs(a,t,40),Hs(a,e,40),a.appendU8(252),a.appendU8(11),a.appendU8(0);break}case 151:case 153:case 235:case 237:case 152:case 154:case 137:case 140:case 141:oi(a,n,e,S)?l=!0:n=0;break;case 537:{const e=Is(n,2),t=Is(n,1);e!==t?(a.local("pLocals"),Xs(a,e,n,!0),Ws(a,t,54)):Xs(a,e,n,!1),a.allowNullCheckOptimization&&Ds.set(t,n),$=!0;break}case 626:case 627:{const t=ue(e+Xa(4));a.ptr_const(t),a.callImport("entry"),a.block(64,4),Fa(a,n,1),a.endBlock();break}case 664:if(N=0,f>=a.options.minimumTraceValue&&!a.options.noExitBackwardBranches&&(!l||u)){const e=js(n,1);a.ip_const(n),a.i32_const(e),a.local("frame"),a.local("pLocals"),a.local("cinfo"),a.callImport("transfer"),a.appendU8(15),n=0}break;case 146:Ma(a,n);break;case 94:{a.local("pLocals");const e=Is(n,2);Ys(a,e)||dt(`${t}: Expected local ${e} to have address taken flag`),Gs(a,e),Ws(a,Is(n,1),54);break}case 280:case 308:case 309:case 555:{a.local("pLocals");let t=Rs(e,Is(n,2));308===S&&(t=St.mono_jiterp_imethod_to_ftnptr(t)),a.ptr_const(t),Ws(a,Is(n,1),54);break}case 313:{const t=Rs(e,Is(n,3));Hs(a,Is(n,1),40),Hs(a,Is(n,2),40),a.ptr_const(t),a.callImport("value_copy");break}case 314:{const e=Is(n,3);Hs(a,Is(n,1),40),Hs(a,Is(n,2),40),qa(a,e);break}case 315:{const e=Is(n,3);Gs(a,Is(n,1),e),Xs(a,Is(n,2),n,!0),qa(a,e);break}case 316:{const t=Rs(e,Is(n,3));Hs(a,Is(n,1),40),Gs(a,Is(n,2),0),a.ptr_const(t),a.callImport("value_copy");break}case 317:{const e=Is(n,3);Hs(a,Is(n,1),40),Gs(a,Is(n,2),0),qa(a,e);break}case 539:a.local("pLocals"),Xs(a,Is(n,2),n,!0),a.appendU8(40),a.appendMemarg(Xa(2),2),Ws(a,Is(n,1),54);break;case 538:{a.block(),Hs(a,Is(n,3),40),a.local("index",34);let e="cknull_ptr";a.options.zeroPageOptimization&&ns()?(Ba.nullChecksFused++,Hs(a,Is(n,2),40),e="src_ptr",a.local(e,34)):Xs(a,Is(n,2),n,!0),a.appendU8(40),a.appendMemarg(Xa(2),2),a.appendU8(72),a.local("index"),a.i32_const(0),a.appendU8(78),a.appendU8(113),a.appendU8(13),a.appendULeb(0),Fa(a,n,11),a.endBlock(),a.local("pLocals"),a.local("index"),a.i32_const(2),a.appendU8(108),a.local(e),a.appendU8(106),a.appendU8(47),a.appendMemarg(Xa(3),1),Ws(a,Is(n,1),54);break}case 349:case 350:{const e=xs(n,4);a.block(),Hs(a,Is(n,3),40),a.local("index",34);let t="cknull_ptr";349===S?Xs(a,Is(n,2),n,!0):(Gs(a,Is(n,2),0),t="src_ptr",a.local(t,34)),a.appendU8(40),a.appendMemarg(Xa(7),2),a.appendU8(73),a.local("index"),a.i32_const(0),a.appendU8(78),a.appendU8(113),a.appendU8(13),a.appendULeb(0),Fa(a,n,18),a.endBlock(),a.local("pLocals"),a.local(t),a.appendU8(40),a.appendMemarg(Xa(8),2),a.local("index"),a.i32_const(e),a.appendU8(108),a.appendU8(106),Ws(a,Is(n,1),54);break}case 652:a.block(),Hs(a,Is(n,3),40),a.local("count",34),a.i32_const(0),a.appendU8(78),a.appendU8(13),a.appendULeb(0),Fa(a,n,18),a.endBlock(),Gs(a,Is(n,1),16),a.local("dest_ptr",34),Hs(a,Is(n,2),40),a.appendU8(54),a.appendMemarg(0,0),a.local("dest_ptr"),a.local("count"),a.appendU8(54),a.appendMemarg(4,0);break;case 567:Gs(a,Is(n,1),8),Gs(a,Is(n,2),8),a.callImport("ld_del_ptr");break;case 81:Gs(a,Is(n,1),4),a.ptr_const(Ts(n,2)),a.callImport("ldtsflda");break;case 651:a.block(),Gs(a,Is(n,1),4),Gs(a,Is(n,2),0),a.callImport("gettype"),a.appendU8(13),a.appendULeb(0),Fa(a,n,2),a.endBlock();break;case 648:{const t=Rs(e,Is(n,4));a.ptr_const(t),Gs(a,Is(n,1),4),Gs(a,Is(n,2),0),Gs(a,Is(n,3),0),a.callImport("hasflag");break}case 657:{const e=Xa(1);a.local("pLocals"),Xs(a,Is(n,2),n,!0),a.i32_const(e),a.appendU8(106),Ws(a,Is(n,1),54);break}case 649:a.local("pLocals"),Gs(a,Is(n,2),0),a.callImport("hashcode"),Ws(a,Is(n,1),54);break;case 650:a.local("pLocals"),Gs(a,Is(n,2),0),a.callImport("try_hash"),Ws(a,Is(n,1),54);break;case 653:a.local("pLocals"),Gs(a,Is(n,2),0),a.callImport("hascsize"),Ws(a,Is(n,1),54);break;case 658:a.local("pLocals"),Hs(a,Is(n,2),40),a.local("math_lhs32",34),Hs(a,Is(n,3),40),a.appendU8(115),a.i32_const(2),a.appendU8(116),a.local("math_rhs32",33),a.local("math_lhs32"),a.i32_const(327685),a.appendU8(106),a.i32_const(10485920),a.appendU8(114),a.i32_const(1703962),a.appendU8(106),a.i32_const(-8388737),a.appendU8(114),a.local("math_rhs32"),a.appendU8(113),a.appendU8(69),Ws(a,Is(n,1),54);break;case 540:case 541:a.block(),Gs(a,Is(n,1),4),Gs(a,Is(n,2),0),a.callImport(540===S?"array_rank":"a_elesize"),a.appendU8(13),a.appendULeb(0),Fa(a,n,2),a.endBlock();break;case 297:case 298:{const t=Rs(e,Is(n,3)),r=St.mono_jiterp_is_special_interface(t),o=297===S,s=Is(n,1);if(!t){Fi(b,0,0,"null-klass"),n=0;continue}a.block(),a.options.zeroPageOptimization&&ns()?(Hs(a,Is(n,2),40),a.local("dest_ptr",34),Ba.nullChecksFused++):(a.block(),Hs(a,Is(n,2),40),a.local("dest_ptr",34),a.appendU8(13),a.appendULeb(0),a.local("pLocals"),a.i32_const(0),Ws(a,s,54),a.appendU8(12),a.appendULeb(1),a.endBlock(),a.local("dest_ptr")),r&&a.local("dest_ptr"),a.appendU8(40),a.appendMemarg(Xa(14),0),a.ptr_const(t),a.callImport(r?"imp_iface_s":"imp_iface"),o&&(a.local("dest_ptr"),a.appendU8(69),a.appendU8(114)),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),Ws(a,s,54),a.appendU8(5),o?Fa(a,n,19):(a.local("pLocals"),a.i32_const(0),Ws(a,s,54)),a.endBlock(),a.endBlock();break}case 299:case 300:case 295:case 296:{const t=Rs(e,Is(n,3)),r=299===S||300===S,o=295===S||299===S,s=Is(n,1);if(!t){Fi(b,0,0,"null-klass"),n=0;continue}a.block(),a.options.zeroPageOptimization&&ns()?(Hs(a,Is(n,2),40),a.local("dest_ptr",34),Ba.nullChecksFused++):(a.block(),Hs(a,Is(n,2),40),a.local("dest_ptr",34),a.appendU8(13),a.appendULeb(0),a.local("pLocals"),a.i32_const(0),Ws(a,s,54),a.appendU8(12),a.appendULeb(1),a.endBlock(),a.local("dest_ptr")),a.appendU8(40),a.appendMemarg(Xa(14),0),a.appendU8(40),a.appendMemarg(Xa(15),0),r&&a.local("src_ptr",34),a.i32_const(t),a.appendU8(70),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),Ws(a,s,54),a.appendU8(5),r?(a.local("src_ptr"),a.ptr_const(t),a.callImport("hasparent"),o&&(a.local("dest_ptr"),a.appendU8(69),a.appendU8(114)),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),Ws(a,s,54),a.appendU8(5),o?Fa(a,n,19):(a.local("pLocals"),a.i32_const(0),Ws(a,s,54)),a.endBlock()):(Gs(a,Is(n,1),4),a.local("dest_ptr"),a.ptr_const(t),a.i32_const(S),a.callImport("castv2"),a.appendU8(69),a.block(64,4),Fa(a,n,19),a.endBlock()),a.endBlock(),a.endBlock();break}case 303:case 304:a.ptr_const(Rs(e,Is(n,3))),Gs(a,Is(n,1),4),Gs(a,Is(n,2),0),a.i32_const(304===S?1:0),a.callImport("box");break;case 307:{const t=Rs(e,Is(n,3)),r=Xa(17),o=Is(n,1),s=ue(t+r);if(!t||!s){Fi(b,0,0,"null-klass"),n=0;continue}a.options.zeroPageOptimization&&ns()?(Hs(a,Is(n,2),40),a.local("dest_ptr",34),Ba.nullChecksFused++):(Xs(a,Is(n,2),n,!0),a.local("dest_ptr",34)),a.appendU8(40),a.appendMemarg(Xa(14),0),a.appendU8(40),a.appendMemarg(Xa(15),0),a.local("src_ptr",34),a.appendU8(40),a.appendMemarg(r,0),a.i32_const(s),a.appendU8(70),a.local("src_ptr"),a.appendU8(45),a.appendMemarg(Xa(16),0),a.appendU8(69),a.appendU8(113),a.block(64,4),a.local("pLocals"),a.local("dest_ptr"),a.i32_const(Xa(18)),a.appendU8(106),Ws(a,o,54),a.appendU8(5),Fa(a,n,21),a.endBlock();break}case 302:a.block(),Gs(a,Is(n,1),4),Hs(a,Is(n,2),40),a.callImport("newstr"),a.appendU8(13),a.appendULeb(0),Fa(a,n,17),a.endBlock();break;case 291:a.block(),Gs(a,Is(n,1),4),a.ptr_const(Rs(e,Is(n,2))),a.callImport("newobj_i"),a.appendU8(13),a.appendULeb(0),Fa(a,n,17),a.endBlock();break;case 293:{const e=Is(n,3);Gs(a,Is(n,2),e),Wa(a,0,e),a.local("pLocals"),Gs(a,Is(n,2),e),Ws(a,Is(n,1),54);break}case 290:case 292:case 543:case 542:l?(Pa(a,n,C,15),d=!0,N=0):n=0;break;case 545:case 546:case 547:case 548:case 544:l?(Pa(a,n,C,544==S?22:15),d=!0):n=0;break;case 145:case 142:Fa(a,n,16),d=!0;break;case 138:case 139:Fa(a,n,26),d=!0;break;case 144:if(a.callHandlerReturnAddresses.length>0&&a.callHandlerReturnAddresses.length<=3){const t=Ls(e,Is(n,1));a.local("pLocals"),a.appendU8(40),a.appendMemarg(t,0),a.local("index",33);for(let e=0;e=3&&S<=12||S>=516&&S<=517?l||a.options.countBailouts?(Fa(a,n,14),d=!0):n=0:S>=13&&S<=29?Zs(a,n,S)?$=!0:n=0:S>=82&&S<=93?Ks(a,n,S)||(n=0):S>=351&&S<=434?ti(a,n,S)||(n=0):ps[S]?ni(a,n,S)||(n=0):fs[S]?ai(a,n,e,S)?l=!0:n=0:S>=31&&S<=57?Qs(a,e,n,S)||(n=0):S>=58&&S<=81?ei(a,e,n,S)||(n=0):S>=95&&S<=135?ii(a,n,S)||(n=0):S>=568&&S<=621?si(a,n,S)||(n=0):S>=323&&S<=348?li(a,e,n,S)||(n=0):S>=235&&S<=278?a.branchTargets.size>0?(Pa(a,n,C,8),d=!0):n=0:S>=640&&S<=647?di(a,n,S,T,I,x)?(p=!0,$=!0):n=0:0===N||(n=0)}if(n){if(!$){const e=n+2;for(let t=0;t0&&(e+=" -> ");for(let n=0;n0&&(l?h++:m++,f+=N),(n+=2*E)<=o&&(g=n)}else s&&ut(`instrumented trace ${t} aborted for opcode ${T} @${j.toString(16)}`),Fi(b,0,0,S)}for(;a.activeBlocks>0;)a.endBlock();return a.cfg.exitIp=g,p&&(f+=10240),f}(e,u,n,r,c,i,b,s),o=a>=gi.minimumTraceValue,i.cfg.generate()})),i.emitImportsAndFunctions(!1),!o)return m&&"end-of-body"===m.abortReason&&(m.abortReason="trace-too-small"),0;d=Oa();const p=i.getArrayView();if(Ba.bytesGenerated+=p.length,p.length>=4080)return pt(`Jiterpreter generated too much code (${p.length} bytes) for trace ${u}. Please report this issue.`),0;const f=new WebAssembly.Module(p),g=i.getWasmImports(),y=new WebAssembly.Instance(f,g).exports[u];_=!1,l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const S=Va(y);if(!S)throw new Error("add_function_pointer returned a 0 index");return i.options.enableStats&&Ba.tracesCompiled&&Ba.tracesCompiled%500==0&&Pi(!1,!0),S}catch(e){return f=!0,_=!1,dt(`${a||u} code generation failed: ${e} ${e.stack}`),Ja(),0}finally{const e=Oa();if(d?(Da.generation+=d-p,Da.compilation+=e-d):Da.generation+=e-p,f||!_&&gi.dumpTraces||h){if(f||gi.dumpTraces||h)for(let e=0;e0;)i.endBlock();i.inSection&&i.endSection()}catch(e){}const n=i.getArrayView();for(let r=0;r=4?nc():Zi>0||"function"==typeof globalThis.setTimeout&&(Zi=globalThis.setTimeout((()=>{Zi=0,nc()}),10))}},function(e,t,n,r,o,a,s,i,c){if(n>16)return 0;const l=new class{constructor(e,t,n,r,o,a,s,i,c){this.imethod=e,this.method=t,this.argumentCount=n,this.unbox=o,this.hasThisReference=a,this.hasReturnValue=s,this.name=i,this.paramTypes=new Array(n);for(let e=0;ee&&(l=l.substring(l.length-e,l.length)),l=`${this.imethod.toString(16)}_${l}`}else l=`${this.imethod.toString(16)}_${this.hasThisReference?"i":"s"}${this.hasReturnValue?"_r":""}_${this.argumentCount}`;this.traceName=l,this.hitCount=0}}(e,t,n,r,o,a,s,Qe(i),c);Xi||(Xi=za());const u=Xi.get(c);return l.result=Va(u),Qi[e]=l,l.result},function(e,t,n,r,o){const a=ue(n+0),s=dc[a];if(s)return void(s.result>0?St.mono_jiterp_register_jit_call_thunk(n,s.result):(s.queue.push(n),s.queue.length>12&&gc()));const i=new fc(e,t,n,r,0!==o);dc[a]=i,_c.push(i),_c.length>=6&&gc()},function(e,t,n,r,o){const a=mc(e);try{a(t,n,r,o)}catch(e){G(o,1)}},gc,function(e,n,r){l.storeMemorySnapshotPending&&w(!1,"Attempting to set function into table during creation of memory snapshot");const o=za().get(e),a=function(e,t,n){try{o(t)}catch(e){G(n,1)}};let s=!bc();if(!s)try{const e=new WebAssembly.Instance(hc,{i:{jit_call_cb:o},m:{h:t.getMemory()}}).exports.do_jit_call_indirect;if("function"!=typeof e)throw new Error("Did not find exported do_jit_call handler");const n=Va(e);St.mono_jiterp_update_jit_call_dispatcher(n),s=!1}catch(e){dt("failed to compile do_jit_call handler",e),s=!0}if(s)try{const e=t.addFunction(a,"viii");St.mono_jiterp_update_jit_call_dispatcher(e)}catch(e){St.mono_jiterp_update_jit_call_dispatcher(0)}a(0,n,r)},function(){l.enablePerfMeasure&&Xt.push(globalThis.performance.now())},function(e){if(l.enablePerfMeasure){const t=Xt.pop(),n=a?{start:t}:{startTime:t};let r=Zt.get(e);r||(r=Qe(vt.mono_wasm_method_get_name(e)),Zt.set(e,r)),globalThis.performance.measure(r,n)}},function(e,t,r,o,a){const s=Qe(r),i=!!o,c=Qe(e),l=a,u=Qe(t),p=`[MONO] ${s}`;if(n.logging&&"function"==typeof n.logging.trace)n.logging.trace(c,u,p,i,l);else switch(u){case"critical":case"error":console.error(ht(p));break;case"warning":console.warn(p);break;case"message":default:console.log(p);break;case"info":console.info(p);break;case"debug":console.debug(p)}},function(e,t){At=Qe(e).concat(".dll"),Rt=t,console.assert(!0,`Adding an entrypoint breakpoint ${At} at method token ${Rt}`);debugger},function(){},Br,function(e,r,o,a,s,i){fr();const c=De(e),l=De(r),u=De(i);try{const e=fn(o);1!==e&&w(!1,`Signature version ${e} mismatch.`);const t=rt(c),r=Jt(),i=rt(l);lt(`Binding [JSImport] ${t} from ${i} module`);const p=function(e,t){e&&"string"==typeof e||w(!1,"function_name must be string");let r={};const o=e.split(".");t?(r=ur.get(t),r||w(!1,`ES6 module ${t} was not imported yet, please call JSHost.ImportAsync() first.`)):"INTERNAL"===o[0]?(r=n,o.shift()):"globalThis"===o[0]&&(r=globalThis,o.shift());for(let t=0;t{e&&e.dispose()},m=!0):R.Task}const h=sn(o,1),b=cn(h);R.Task;const g=Yr(h,b,1),y={fn:p,fqn:i+":"+t,args_count:d,arg_marshalers:_,res_converter:g,has_cleanup:m,arg_cleanup:f,isDisposed:!1};let S;S=0!=d||g?1!=d||m||g?1==d&&!m&&g?function(e){const t=e.fn,n=e.arg_marshalers[0],r=e.res_converter,o=e.fqn;return e=null,function(a){const s=Jt();try{L&&e.isDisposed;const o=n(a),s=t(o);r(a,s)}catch(e){ho(a,e)}finally{Yt(s,"mono.callCsFunction:",o)}}}(y):2==d&&!m&&g?function(e){const t=e.fn,n=e.arg_marshalers[0],r=e.arg_marshalers[1],o=e.res_converter,a=e.fqn;return e=null,function(s){const i=Jt();try{L&&e.isDisposed;const a=n(s),i=r(s),c=t(a,i);o(s,c)}catch(e){ho(s,e)}finally{Yt(i,"mono.callCsFunction:",a)}}}(y):function(e){const t=e.args_count,n=e.arg_marshalers,r=e.res_converter,o=e.arg_cleanup,a=e.has_cleanup,s=e.fn,i=e.fqn;return e=null,function(c){const l=Jt();try{L&&e.isDisposed;const i=new Array(t);for(let e=0;e2?t:r,e)}else{u=1;const t=s[e].toUpperCase();W(l,n+2*e,(t.length>1?s[e]:t).charCodeAt(0))}else for(let e=0;e2?t:r,e)}else{u=1;const t=s[e].toLowerCase();W(l,n+2*e,(t.length>1?s[e]:t).charCodeAt(0))}}catch(e){dr(a,e,i)}finally{i.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c);if(!e)throw new Error("Cannot change case, the culture name is null.");const i=tt(t,t+2*n),u=a?i.toLocaleUpperCase(e):i.toLocaleLowerCase(e);if(u.length<=i.length)return nt(r,r+2*o,u),void _r(s,l);const p=Ue();let d=1;if(a)for(let t=0;t2?n:o,t)}else{d=1;const n=i[t].toLocaleUpperCase(e);W(p,r+2*t,(n.length>1?i[t]:n).charCodeAt(0))}else for(let t=0;t2?n:o,t)}else{d=1;const n=i[t].toLocaleLowerCase(e);W(p,r+2*t,(n.length>1?i[t]:n).charCodeAt(0))}_r(s,l)}catch(e){dr(s,e,l)}finally{c.release(),l.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c),i=et(t,t+2*n),u=et(r,r+2*o),p=31&a,d=e||void 0;return _r(s,l),Tc(i,u,d,p)}catch(e){return dr(s,e,l),-2}finally{c.release(),l.release()}},function(e,t,n,r,o,a,s,i){const c=De(e),l=De(i);try{const e=rt(c),i=jc(r,o);if(0==i.length)return 1;const u=jc(t,n);if(u.lengthe.segment));let h=0,b=!1,g=-1,y=0,w=0,S=0;for(;!b;){const e=f.segment(c.slice(h,c.length))[Symbol.iterator]();let t=e.next();if(t.done)break;let n=p(t.value.segment,m[0],d,_);if(w=S,t=e.next(),t.done){g=n?w:g;break}if(y=t.value.index,S=w+y,n){for(let r=1;r1&&e<15||22==e||23==e}(n))return{eraNames:"",abbreviatedEraNames:""};const r=e.toLocaleDateString(t,{year:"numeric"}),o=e.toLocaleDateString(t,{day:"numeric"}),a=e.toLocaleDateString(t,{era:"short"}),s=e.toLocaleDateString(t,{era:"narrow"}),i=a.includes(r)?l(r):l(e.getFullYear().toString());return{eraNames:c(i.eraDateParts,i.ignoredPart),abbreviatedEraNames:c(i.abbrEraDateParts,i.ignoredPart)};function c(e,n){const r=new RegExp(`^((?!${n}|[0-9]).)*$`),o=e.filter((e=>r.test(e)));if(0==o.length)throw new Error(`Internal error, era for locale ${t} was in non-standard format.`);return o[0].trim()}function l(e){return a.startsWith(e)||a.endsWith(e)?{eraDateParts:a.split(o),abbrEraDateParts:s.split(o),ignoredPart:e}:{eraDateParts:a.split(e),abbrEraDateParts:s.split(e),ignoredPart:o}}}(c,e,t);a.EraNames=p.eraNames,a.AbbreviatedEraNames=p.abbreviatedEraNames;const d=Object.values(a).join("##");if(d.length>r)throw new Error(`Calendar info exceeds length of ${r}.`);return nt(n,n+2*d.length,d),_r(o,i),d.length}catch(e){return dr(o,e,i),-1}finally{s.release(),i.release()}},function(e,t,n,r,o){const a=De(e),s=De(o);try{const e=rt(a),o={AmDesignator:"",PmDesignator:"",LongTimePattern:"",ShortTimePattern:""},i=Lc(e),c=function(e){const t=new Date("August 19, 1975 12:15:33"),n=new Date("August 19, 1975 11:15:33"),r=Il(t,e);return{am:Il(n,e),pm:r}}(i);o.AmDesignator=c.am,o.PmDesignator=c.pm,o.LongTimePattern=function(e,t){const n=18..toLocaleString(e),r=6..toLocaleString(e),o=new Date("August 19, 1975 18:15:30"),a=new Intl.DateTimeFormat(e,{timeStyle:"medium"}),s=a.format(o),i=o.toLocaleTimeString(e,{minute:"numeric"}),c=o.toLocaleTimeString(e,{second:"numeric"});let l=s.replace(t.pm,"tt").replace(i,"mm").replace(c,"ss");const u=l.includes(n),p=`${(0).toLocaleString(e)}${r}`,d=new Date("August 19, 1975 6:15:30"),_=a.format(d);let f;if(u)f=_.includes(p)?"HH":"H",l=l.replace(n,f);else{const e=_.includes(p);f=e?"hh":"h",l=l.replace(e?p:r,f)}return l}(i,c),o.ShortTimePattern=function(e){const t=e.indexOf("ss");if(t>0){const n=`${e[t-1]}ss`,r=e.replace(n,"");e=r.length>t&&"t"!=r[r.length-1]?e.split(n)[0]:r}return e}(o.LongTimePattern);const l=Object.values(o).join("##");if(l.length>n)throw new Error(`Culture info exceeds length of ${n}.`);return nt(t,t+2*l.length,l),_r(r,s),l.length}catch(e){return dr(r,e,s),-1}finally{a.release(),s.release()}},function(e,t,n){const r=De(e),o=De(n);try{return function(e){const t=xl(e);if(t)return 7==t.firstDay?0:t.firstDay;if(["en-AE","en-SD","fa-IR"].includes(e))return 6;const n=e.split("-")[0];return["zh","th","pt","mr","ml","ko","kn","ja","id","hi","he","gu","fil","bn","am","ar"].includes(n)||["ta-SG","ta-IN","sw-KE","ms-SG","fr-CA","es-MX","en-US","en-ZW","en-ZA","en-WS","en-VI","en-UM","en-TT","en-SG","en-PR","en-PK","en-PH","en-MT","en-MO","en-MH","en-KE","en-JM","en-IN","en-IL","en-HK","en-GU","en-DM","en-CA","en-BZ","en-BW","en-BS","en-AU","en-AS","en-AG"].includes(e)?0:1}(Lc(rt(r)))}catch(e){return dr(t,e,o),-1}finally{r.release(),o.release()}},function(e,t,n){const r=De(e),o=De(n);try{return function(e){const t=xl(e);if(t)return 7==t.minimalDays?1:t.minimalDays<4?0:2;const n=e.split("-")[0];return["pt-PT","fr-CH","fr-FR","fr-BE","es-ES","en-SE","en-NL","en-JE","en-IM","en-IE","en-GI","en-GG","en-GB","en-FJ","en-FI","en-DK","en-DE","en-CH","en-BE","en-AT","el-GR"].includes(e)||["sv","sk","ru","pl","nl","no","lt","it","hu","fi","et","de","da","cs","ca","bg"].includes(n)?2:0}(Lc(rt(r)))}catch(e){return dr(t,e,o),-1}finally{r.release(),o.release()}}],jl=[...Tl,function(e,t,n,r,o){il();const a=De(n),s=De(t),i=De(o);try{const t=rt(s);if(!t||"string"!=typeof t)return void dr(r,"ERR12: Invalid method name object @"+s.value,i);const n=function(e){return e!==x&&e!==I?Nr(e):null}(e);if(A(n))return void dr(r,"ERR13: Invalid JS object handle '"+e+"' while invoking '"+t+"'",i);const o=yl(a);try{const e=n[t];if(void 0===e)throw new Error("Method: '"+t+"' not found for: '"+Object.prototype.toString.call(n)+"'");qc(e.apply(n,o),i,!0),_r(r)}catch(e){dr(r,e,i)}}finally{a.release(),s.release(),i.release()}},function(e,t,n,r){il();const o=De(t),a=De(r);try{const t=rt(o);if(!t)return void dr(n,"Invalid property name object '"+o.value+"'",a);const r=Nr(e);if(A(r))return void dr(n,"ERR01: Invalid JS object handle '"+e+"' while geting '"+t+"'",a);qc(r[t],a,!0),_r(n)}catch(e){dr(n,e,a)}finally{a.release(),o.release()}},function(e,t,n,r,o,a,s){il();const i=De(n),c=De(t),l=De(s);try{const n=rt(c);if(!n)return void dr(a,"Invalid property name object '"+t+"'",l);const s=Nr(e);if(A(s))return void dr(a,"ERR02: Invalid JS object handle '"+e+"' while setting '"+n+"'",l);const u=bl(i);if(r)s[n]=u;else{if(!r&&!Object.prototype.hasOwnProperty.call(s,n))return;!0===o?Object.prototype.hasOwnProperty.call(s,n)&&(s[n]=u):s[n]=u}_r(a,l)}catch(e){dr(a,e,l)}finally{l.release(),c.release(),i.release()}},function(e,t,n,r){il();const o=De(r);try{const r=Nr(e);if(A(r))return void dr(n,"ERR03: Invalid JS object handle '"+e+"' while getting ["+t+"]",o);qc(r[t],o,!0),_r(n)}catch(e){dr(n,e,o)}finally{o.release()}},function(e,t,n,r,o){il();const a=De(n),s=De(o);try{const n=Nr(e);if(A(n))return void dr(r,"ERR04: Invalid JS object handle '"+e+"' while setting ["+t+"]",s);const o=bl(a);n[t]=o,_r(r,s)}catch(e){dr(r,e,s)}finally{s.release(),a.release()}},function(e,r,o){il();const a=De(e),s=De(o);try{const e=rt(a);let o;if(o=e?"Module"==e?t:"INTERNAL"==e?n:globalThis[e]:globalThis,null===o||void 0===typeof o)return void dr(r,"Global object '"+e+"' not found.",s);qc(o,s,!0),_r(r)}catch(e){dr(r,e,s)}finally{s.release(),a.release()}},function(e,t,n,r){const o=De(t),a=De(e),s=De(r);try{const e=rt(a);if(!e)return void dr(n,"Invalid name @"+a.value,s);const t=globalThis[e];if(null==t)return void dr(n,"JavaScript host object '"+e+"' not found.",s);try{const e=yl(o),r=function(e,t){let n=[];return n[0]=e,t&&(n=n.concat(t)),new(e.bind.apply(e,n))};qc(Dr(r(t,e)),s,!1),_r(n)}catch(e){return void dr(n,e,s)}}finally{s.release(),o.release(),a.release()}},function(e,t,n){const r=De(n);try{const n=Nr(e);if(A(n))return void dr(t,"ERR06: Invalid JS object handle '"+e+"'",r);Yc(n,r),_r(t)}catch(e){dr(t,String(e),r)}finally{r.release()}},function(e,t,n,r,o,a,s){const i=De(s);try{const s=function(e,t,n,r,o){let a=null;switch(o){case 5:a=new Int8Array(n-t);break;case 6:a=new Uint8Array(n-t);break;case 7:a=new Int16Array(n-t);break;case 8:a=new Uint16Array(n-t);break;case 9:a=new Int32Array(n-t);break;case 10:a=new Uint32Array(n-t);break;case 13:a=new Float32Array(n-t);break;case 14:a=new Float64Array(n-t);break;case 15:a=new Uint8ClampedArray(n-t);break;default:throw new Error("Unknown array type "+o)}return function(e,t,n,r,o){if(Hc(e)&&e.BYTES_PER_ELEMENT){if(o!==e.BYTES_PER_ELEMENT)throw new Error("Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '"+e.BYTES_PER_ELEMENT+"' sizeof managed element: '"+o+"'");let a=(r-n)*o;const s=e.length*e.BYTES_PER_ELEMENT;a>s&&(a=s);const i=n*o;return new Uint8Array(e.buffer,0,a).set(Ee().subarray(t+i,t+i+a)),a}throw new Error("Object '"+e+"' is not a typed array")}(a,e,t,n,r),a}(e,t,n,r,o);qc(s,i,!0),_r(a)}catch(e){dr(a,String(e),i)}finally{i.release()}},function(e,t,n,r,o){try{il();const e=globalThis.Blazor;if(!e)throw new Error("The blazor.webassembly.js library is not loaded.");return e._internal.invokeJSFromDotNet(t,n,r,o)}catch(t){const n=t.message+"\n"+t.stack,r=Be();return ot(n,r),r.copy_to_address(e),r.release(),0}}];function Al(e){const t=e.env||e.a;if(!t)return void pt("WARNING: Neither imports.env or imports.a were present when instantiating the wasm module. This likely indicates an emscripten configuration issue.");const n=new Array(jl.length);for(const e in t){const r=t[e];if("function"==typeof r&&-1!==r.toString().indexOf("runtime_idx"))try{const{runtime_idx:t}=r();if(void 0!==n[t])throw new Error(`Duplicate runtime_idx ${t}`);n[t]=e}catch(e){}}for(const[e,r]of jl.entries()){const o=n[e];if(void 0!==o){const e=t[o];if("function"!=typeof e)throw new Error(`Expected ${o} to be a function`);t[o]=r,lt(`Replaced WASM import ${o} stub ${e.name} with ${r.name||"minified implementation"}`)}}}const Rl="https://dotnet.generated.invalid/wasm-memory";async function Ll(){if(void 0===globalThis.caches)return null;if(a&&!1===globalThis.window.isSecureContext)return null;const e=`dotnet-resources${document.baseURI.substring(document.location.origin.length)}`;try{return await globalThis.caches.open(e)||null}catch(e){return pt("Failed to open cache"),null}}async function Cl(){if(l.memorySnapshotCacheKey)return l.memorySnapshotCacheKey;if(!l.subtle)return null;const t=Object.assign({},l.config);t.resourcesHash=t.resources.hash,delete t.assets,delete t.resources,t.preferredIcuAsset=u.preferredIcuAsset,delete t.forwardConsoleLogsToWS,delete t.diagnosticTracing,delete t.appendElementOnExit,delete t.assertAfterExit,delete t.interopCleanupOnExit,delete t.logExitCode,delete t.pthreadPoolSize,delete t.asyncFlushOnExit,delete t.remoteSources,delete t.ignorePdbLoadErrors,delete t.maxParallelDownloads,delete t.enableDownloadRetry,delete t.exitAfterSnapshot,delete t.extensions,t.GitHash=u.gitHash,t.ProductVersion=e;const n=JSON.stringify(t),r=await l.subtle.digest("SHA-256",(new TextEncoder).encode(n)),o=new Uint8Array(r),a=Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("");return l.memorySnapshotCacheKey=`${Rl}-${a}`,l.memorySnapshotCacheKey}async function $l(e){e.out||(e.out=console.log.bind(console)),e.err||(e.err=console.error.bind(console)),e.print||(e.print=e.out),e.printErr||(e.printErr=e.err),u.out=e.print,u.err=e.printErr,await Io(),await async function(){try{if(!l.config.startupMemoryCache)return;const e=await Cl();if(!e)return;const t=await Ll();if(!t)return;const n=await t.match(e),r=null==n?void 0:n.headers.get("content-length"),o=r?parseInt(r):void 0;l.loadedMemorySnapshotSize=o,l.storeMemorySnapshotPending=!o}catch(e){pt("Failed find memory snapshot in the cache",e)}finally{l.loadedMemorySnapshotSize||u.memorySnapshotSkippedOrDone.promise_control.resolve()}}()}function Nl(e){const n=Jt();e.locateFile||(e.locateFile=e.__locateFile=e=>u.scriptDirectory+e),e.mainScriptUrlOrBlob=u.scriptUrl;const h=e.instantiateWasm,b=e.preInit?"function"==typeof e.preInit?[e.preInit]:e.preInit:[],g=e.preRun?"function"==typeof e.preRun?[e.preRun]:e.preRun:[],y=e.postRun?"function"==typeof e.postRun?[e.postRun]:e.postRun:[],S=e.onRuntimeInitialized?e.onRuntimeInitialized:()=>{};e.instantiateWasm=(e,n)=>function(e,n,r){const o=Jt();if(r){const t=r(e,((e,t)=>{Yt(o,"mono.instantiateWasm"),l.afterInstantiateWasm.promise_control.resolve(),n(e,t)}));return t}return async function(e,n){var r;try{await u.afterConfigLoaded,lt("instantiate_wasm_module"),await l.beforePreInit.promise,t.addRunDependency("instantiate_wasm_module");const o=async function(){d&&(await u.simd()||w(!1,"This browser/engine doesn't support WASM SIMD. Please use a modern version. See also https://aka.ms/dotnet-wasm-features")),_&&(await u.exceptions()||w(!1,"This browser/engine doesn't support WASM exception handling. Please use a modern version. See also https://aka.ms/dotnet-wasm-features"))}();Al(e);const i=await u.wasmDownloadPromise.promise;if(await o,await async function(e,t,n){e&&e.pendingDownloadInternal&&e.pendingDownloadInternal.response||w(!1,"Can't load dotnet.native.wasm");const r=await e.pendingDownloadInternal.response,o=r.headers&&r.headers.get?r.headers.get("Content-Type"):void 0;let i,c;if("function"==typeof WebAssembly.instantiateStreaming&&"application/wasm"===o){lt("instantiate_wasm_module streaming");const e=await WebAssembly.instantiateStreaming(r,t);i=e.instance,c=e.module}else{a&&"application/wasm"!==o&&pt('WebAssembly resource does not have the expected content type "application/wasm", so falling back to slower ArrayBuffer instantiation.');const e=await r.arrayBuffer();if(lt("instantiate_wasm_module buffered"),s)c=new WebAssembly.Module(e),i=new WebAssembly.Instance(c,t);else{const n=await WebAssembly.instantiate(e,t);i=n.instance,c=n.module}}n(i,c)}(i,e,n),i.pendingDownloadInternal=null,i.pendingDownload=null,i.buffer=null,i.moduleExports=null,lt("instantiate_wasm_module done"),l.loadedMemorySnapshotSize){try{const e=(null===(r=t.asm)||void 0===r?void 0:r.memory)||t.wasmMemory;e.grow(l.loadedMemorySnapshotSize-e.buffer.byteLength+65535>>>16),l.updateMemoryViews()}catch(e){pt("failed to resize memory for the snapshot",e),l.loadedMemorySnapshotSize=void 0}u.memorySnapshotSkippedOrDone.promise_control.resolve()}l.afterInstantiateWasm.promise_control.resolve()}catch(e){throw dt("instantiate_wasm_module() failed",e),u.mono_exit(1,e),e}t.removeRunDependency("instantiate_wasm_module")}(e,n),[]}(e,n,h),e.preInit=[()=>function(e){t.addRunDependency("mono_pre_init");const n=Jt();try{Bl(!1),lt("preInit"),l.beforePreInit.promise_control.resolve(),e.forEach((e=>e()))}catch(e){throw dt("user preInint() failed",e),u.mono_exit(1,e),e}(async()=>{try{await async function(){lt("mono_wasm_pre_init_essential_async"),t.addRunDependency("mono_wasm_pre_init_essential_async"),t.removeRunDependency("mono_wasm_pre_init_essential_async")}(),Yt(n,"mono.preInit")}catch(e){throw u.mono_exit(1,e),e}l.afterPreInit.promise_control.resolve(),t.removeRunDependency("mono_pre_init")})()}(b)],e.preRun=[()=>async function(e){t.addRunDependency("mono_pre_run_async");try{await l.afterInstantiateWasm.promise,await l.afterPreInit.promise,lt("preRunAsync");const t=Jt();e.map((e=>e())),Yt(t,"mono.preRun")}catch(e){throw dt("user callback preRun() failed",e),u.mono_exit(1,e),e}l.afterPreRun.promise_control.resolve(),t.removeRunDependency("mono_pre_run_async")}(g)],e.onRuntimeInitialized=()=>async function(e){try{await l.afterPreRun.promise,lt("onRuntimeInitialized"),l.mono_wasm_exit=St.mono_wasm_exit,l.abort=e=>{throw u.is_exited()||St.mono_wasm_abort(),e};const n=Jt();if(l.beforeOnRuntimeInitialized.promise_control.resolve(),await async function(){await l.allAssetsInMemory.promise,l.config.assets&&(u.actual_downloaded_assets_count!=u.expected_downloaded_assets_count&&w(!1,`Expected ${u.expected_downloaded_assets_count} assets to be downloaded, but only finished ${u.actual_downloaded_assets_count}`),u.actual_instantiated_assets_count!=u.expected_instantiated_assets_count&&w(!1,`Expected ${u.expected_instantiated_assets_count} assets to be in memory, but only instantiated ${u.actual_instantiated_assets_count}`),u._loaded_files.forEach((e=>u.loadedFiles.push(e.url))),lt("all assets are loaded in wasm memory"))}(),L&&l.config.startupMemoryCache,await async function(){const e=Jt();if(l.loadedMemorySnapshotSize){const e=await async function(){try{const e=await Cl();if(!e)return;const t=await Ll();if(!t)return;const n=await t.match(e);if(!n)return;return n.arrayBuffer()}catch(e){return void pt("Failed load memory snapshot from the cache",e)}}(),t=Ee();return e.byteLength!==t.byteLength&&w(!1,"Loaded memory is not the expected size"),t.set(new Uint8Array(e),0),void lt("Loaded WASM linear memory from browser cache")}for(const e in l.config.environmentVariables){const t=l.config.environmentVariables[e];if("string"!=typeof t)throw new Error(`Expected environment variable '${e}' to be a string but it was ${typeof t}: '${t}'`);Ol(e,t)}l.config.startupMemoryCache&&St.mono_jiterp_update_jit_call_dispatcher(0),l.config.runtimeOptions&&function(e){if(!Array.isArray(e))throw new Error("Expected runtimeOptions to be an array of strings");const n=t._malloc(4*e.length);let r=0;for(let o=0;oaot; in your project file."),null==e&&(e={}),"writeAt"in e||(e.writeAt="System.Runtime.InteropServices.JavaScript.JavaScriptExports::StopProfile"),"sendTo"in e||(e.sendTo="Interop/Runtime::DumpAotProfileData");const t="aot:write-at-method="+e.writeAt+",send-to-method="+e.sendTo;vt.mono_wasm_profiler_init_aot(t)}(l.config.aotProfilerOptions),l.config.browserProfilerOptions&&(l.config.browserProfilerOptions,m||w(!1,"Browser profiler is not enabled, please use browser; in your project file."),vt.mono_wasm_profiler_init_browser("browser:")),Ml("unused",l.config.debugLevel),l.config.startupMemoryCache&&(St.mono_jiterp_update_jit_call_dispatcher(-1),await async function(e){try{const t=await Cl();if(!t)return;const n=await Ll();if(!n)return;const r=L?new Uint8Array(e).slice(0):e,o=new Response(r,{headers:{"content-type":"wasm-memory","content-length":e.byteLength.toString()}});await n.put(t,o),async function(e){try{const t=await Ll();if(!t)return;const n=await t.keys();for(const r of n)r.url&&r.url!==e&&r.url.startsWith(Rl)&&await t.delete(r)}catch(e){return}}(t)}catch(e){return void pt("Failed to store memory snapshot in the cache",e)}}(Ee().buffer),l.storeMemorySnapshotPending=!1),Yt(e,"mono.memorySnapshot")}(),l.config.exitAfterSnapshot){const e=l.ExitStatus?new l.ExitStatus(0):new Error("Snapshot taken, exiting because exitAfterSnapshot was set.");return e.silent=!0,void u.mono_exit(0,e)}L&&l.config.startupMemoryCache,function(){if(!l.mono_wasm_bindings_is_ready){lt("bindings_init"),l.mono_wasm_bindings_is_ready=!0;try{const e=Jt();Ve||("undefined"!=typeof TextDecoder&&(We=new TextDecoder("utf-16le"),Ge=new TextDecoder("utf-8",{fatal:!1}),qe=new TextDecoder("utf-8"),Je=new TextEncoder),Ve=t._malloc(12)),function(){const e="System.Runtime.InteropServices.JavaScript";if(l.runtime_interop_module=St.mono_wasm_assembly_load(e),!l.runtime_interop_module)throw"Can't find bindings module assembly: "+e;if(l.runtime_interop_namespace="System.Runtime.InteropServices.JavaScript",l.runtime_interop_exports_classname="JavaScriptExports",l.runtime_interop_exports_class=St.mono_wasm_assembly_find_class(l.runtime_interop_module,l.runtime_interop_namespace,l.runtime_interop_exports_classname),!l.runtime_interop_exports_class)throw"Can't find "+l.runtime_interop_namespace+"."+l.runtime_interop_exports_classname+" class";const n=xo("CallEntrypoint");n||w(!1,"Can't find CallEntrypoint method");const r=xo("ReleaseJSOwnedObjectByGCHandle");r||w(!1,"Can't find ReleaseJSOwnedObjectByGCHandle method");const o=xo("CreateTaskCallback");o||w(!1,"Can't find CreateTaskCallback method");const a=xo("CompleteTask");a||w(!1,"Can't find CompleteTask method");const s=xo("CallDelegate");s||w(!1,"Can't find CallDelegate method");const i=xo("GetManagedStackTrace");i||w(!1,"Can't find GetManagedStackTrace method");const c=xo("LoadSatelliteAssembly");c||w(!1,"Can't find LoadSatelliteAssembly method");const p=xo("LoadLazyAssembly");p||w(!1,"Can't find LoadLazyAssembly method"),l.javaScriptExports.call_entry_point=async(e,r)=>{u.assert_runtime_running();const o=t.stackSave();try{t.runtimeKeepalivePush();const o=on(4),a=an(o,1),s=an(o,2),i=an(o,3);so(s,e),r&&0==r.length&&(r=void 0),wo(i,r,R.String),kr(n,o);let c=Gn(a,0,Bn);return null==c&&(c=Promise.resolve(0)),c[$r]=!0,await c}finally{t.runtimeKeepalivePop(),t.stackRestore(o)}},l.javaScriptExports.load_satellite_assembly=e=>{const n=t.stackSave();try{const t=on(3),n=an(t,2);hn(n,R.Array),yo(n,e,R.Byte),kr(c,t)}finally{t.stackRestore(n)}},l.javaScriptExports.load_lazy_assembly=(e,n)=>{const r=t.stackSave();try{const t=on(4),r=an(t,2),o=an(t,3);hn(r,R.Array),hn(o,R.Array),yo(r,e,R.Byte),yo(o,n,R.Byte),kr(p,t)}finally{t.stackRestore(r)}},l.javaScriptExports.release_js_owned_object_by_gc_handle=e=>{e||w(!1,"Must be valid gc_handle"),u.assert_runtime_running();const n=t.stackSave();try{const t=on(3),n=an(t,2);hn(n,R.Object),Un(n,e),kr(r,t)}finally{t.stackRestore(n)}},l.javaScriptExports.create_task_callback=()=>{const e=t.stackSave();u.assert_runtime_running();try{const e=on(2);return kr(o,e),En(an(e,1))}finally{t.stackRestore(e)}},l.javaScriptExports.complete_task=(e,n,r,o)=>{u.assert_runtime_running();const s=t.stackSave();try{const t=on(5),s=an(t,2);hn(s,R.Object),Un(s,e);const i=an(t,3);if(n)ho(i,n);else{hn(i,R.None);const e=an(t,4);o||w(!1,"res_converter missing"),o(e,r)}kr(a,t)}finally{t.stackRestore(s)}},l.javaScriptExports.call_delegate=(e,n,r,o,a,i,c,l)=>{u.assert_runtime_running();const p=t.stackSave();try{const t=on(6),u=an(t,2);if(hn(u,R.Object),Un(u,e),i&&i(an(t,3),n),c&&c(an(t,4),r),l&&l(an(t,5),o),kr(s,t),a)return a(an(t,1))}finally{t.stackRestore(p)}},l.javaScriptExports.get_managed_stack_trace=e=>{u.assert_runtime_running();const n=t.stackSave();try{const t=on(3),n=an(t,2);return hn(n,R.Exception),Un(n,e),kr(i,t),qn(an(t,1))}finally{t.stackRestore(n)}}}(),p||i||function(){if(Object.prototype[Vc]=0,Array.prototype[Vc]=1,ArrayBuffer.prototype[Vc]=2,DataView.prototype[Vc]=3,Function.prototype[Vc]=4,Uint8Array.prototype[Vc]=11,zc._unbox_buffer_size=65536,zc._box_buffer=t._malloc(65536),zc._unbox_buffer=t._malloc(zc._unbox_buffer_size),zc._class_int32=Sr("System","Int32"),zc._class_uint32=Sr("System","UInt32"),zc._class_double=Sr("System","Double"),zc._class_boolean=Sr("System","Boolean"),zc._null_root=Be(),function(){const e=Qc;e.set("m",{steps:[{}],size:0}),e.set("s",{steps:[{convert_root:ot.bind(t)}],size:0,needs_root:!0}),e.set("S",{steps:[{convert_root:at.bind(t)}],size:0,needs_root:!0}),e.set("o",{steps:[{convert_root:qc.bind(t)}],size:0,needs_root:!0}),e.set("u",{steps:[{convert_root:Wc.bind(t,!1)}],size:0,needs_root:!0}),e.set("R",{steps:[{convert_root:qc.bind(t),byref:!0}],size:0,needs_root:!0}),e.set("j",{steps:[{convert:Zc.bind(t),indirect:"i32"}],size:8}),e.set("b",{steps:[{indirect:"bool"}],size:8}),e.set("i",{steps:[{indirect:"i32"}],size:8}),e.set("I",{steps:[{indirect:"u32"}],size:8}),e.set("l",{steps:[{indirect:"i52"}],size:8}),e.set("L",{steps:[{indirect:"u52"}],size:8}),e.set("f",{steps:[{indirect:"float"}],size:8}),e.set("d",{steps:[{indirect:"double"}],size:8})}(),zc.runtime_legacy_exports_classname="LegacyExports",zc.runtime_legacy_exports_class=St.mono_wasm_assembly_find_class(l.runtime_interop_module,l.runtime_interop_namespace,zc.runtime_legacy_exports_classname),!zc.runtime_legacy_exports_class)throw"Can't find "+l.runtime_interop_namespace+"."+zc.runtime_legacy_exports_classname+" class";for(const e of cl){const t=ll,[n,r,o,a]=e;if(n)t[r]=function(...e){const n=ul(o,a);return t[r]=n,n(...e)};else{const e=ul(o,a);t[r]=e}}}(),0==Kt.size&&(Kt.set(R.Array,Zn),Kt.set(R.Span,Qn),Kt.set(R.ArraySegment,er),Kt.set(R.Boolean,Cn),Kt.set(R.Byte,$n),Kt.set(R.Char,Nn),Kt.set(R.Int16,Dn),Kt.set(R.Int32,Bn),Kt.set(R.Int52,On),Kt.set(R.BigInt64,Mn),Kt.set(R.Single,Fn),Kt.set(R.IntPtr,zn),Kt.set(R.Double,Pn),Kt.set(R.String,qn),Kt.set(R.Exception,Jn),Kt.set(R.JSException,Jn),Kt.set(R.JSObject,Yn),Kt.set(R.Object,Xn),Kt.set(R.DateTime,Hn),Kt.set(R.DateTimeOffset,Hn),Kt.set(R.Task,Gn),Kt.set(R.Action,Wn),Kt.set(R.Function,Wn),Kt.set(R.None,Vn),Kt.set(R.Void,Vn),Kt.set(R.Discard,Vn)),0==Qt.size&&(Qt.set(R.Array,yo),Qt.set(R.Span,So),Qt.set(R.ArraySegment,ko),Qt.set(R.Boolean,Zr),Qt.set(R.Byte,Kr),Qt.set(R.Char,Qr),Qt.set(R.Int16,eo),Qt.set(R.Int32,to),Qt.set(R.Int52,no),Qt.set(R.BigInt64,ro),Qt.set(R.Double,oo),Qt.set(R.Single,ao),Qt.set(R.IntPtr,so),Qt.set(R.DateTime,io),Qt.set(R.DateTimeOffset,co),Qt.set(R.String,lo),Qt.set(R.Exception,ho),Qt.set(R.JSException,ho),Qt.set(R.JSObject,bo),Qt.set(R.Object,go),Qt.set(R.Task,mo),Qt.set(R.Action,_o),Qt.set(R.Function,_o),Qt.set(R.None,po),Qt.set(R.Discard,po),Qt.set(R.Void,po)),l._i52_error_scratch_buffer=t._malloc(4),Yt(e,"mono.bindingsInit")}catch(e){throw dt("Error in bindings_init",e),e}}}(),l.runtimeReady=!0,r&&!o&&t.runtimeKeepalivePush(),l.mono_wasm_runtime_is_ready||mono_wasm_runtime_ready(),0!==u.config.debugLevel&&u.config.cacheBootResources&&u.logDownloadStatsToConsole(),setTimeout((()=>{u.purgeUnusedCacheEntriesAsync()}),u.config.cachedResourcesPurgeDelay);try{e()}catch(e){throw dt("user callback onRuntimeInitialized() failed",e),e}await async function(){lt("mono_wasm_after_user_runtime_initialized");try{if(!t.disableDotnet6Compatibility&&t.exports){const e=globalThis;for(let n=0;nasync function(e){try{await l.afterOnRuntimeInitialized.promise,lt("postRunAsync");const n=Jt();t.FS_createPath("/","usr",!0,!0),t.FS_createPath("/","usr/share",!0,!0),e.map((e=>e())),Yt(n,"mono.postRun")}catch(e){throw dt("user callback posRun() failed",e),u.mono_exit(1,e),e}l.afterPostRun.promise_control.resolve()}(y)],e.ready.then((async()=>{await l.afterPostRun.promise,Yt(n,"mono.emscriptenStartup"),l.dotnetReady.promise_control.resolve(c)})).catch((e=>{l.dotnetReady.promise_control.reject(e)})),e.ready=l.dotnetReady.promise,e.onAbort||(e.onAbort=e=>{u.mono_exit(1,e)}),e.onExit||(e.onExit=e=>{u.mono_exit(e,null)})}async function Dl(e,n){await u.afterConfigLoaded.promise,Al(e),n(new WebAssembly.Instance(t.wasmModule,e),void 0),t.wasmModule=null}function Bl(e){var r,o,a;e||t.addRunDependency("mono_wasm_pre_init_essential"),lt("mono_wasm_pre_init_essential"),u.gitHash!==l.gitHash&&pt("The version of dotnet.runtime.js is different from the version of dotnet.js!"),u.gitHash!==l.moduleGitHash&&pt("The version of dotnet.native.js is different from the version of dotnet.js!"),function(){const e=[...yt,...p?[]:gt];for(const t of e){const e=wt,[n,r,o,a,s]=t,i="function"==typeof n;if(!0===n||i)e[r]=function(...t){!i||!n()||w(!1,`cwrap ${r} should not be called when binding was skipped`);const c=Ut(r,o,a,s);return e[r]=c,c(...t)};else{const t=Ut(r,o,a,s);e[r]=t}}}(),r=n,Object.assign(r,{mono_wasm_exit:St.mono_wasm_exit,mono_wasm_enable_on_demand_gc:St.mono_wasm_enable_on_demand_gc,mono_wasm_profiler_init_aot:vt.mono_wasm_profiler_init_aot,mono_wasm_profiler_init_browser:vt.mono_wasm_profiler_init_browser,mono_wasm_exec_regression:St.mono_wasm_exec_regression}),p||(a=Fc,Object.assign(a,{mono_wasm_add_assembly:kt.mono_wasm_add_assembly}),o=Pc,Object.assign(o,{mono_obj_array_new:kt.mono_wasm_obj_array_new,mono_obj_array_set:kt.mono_wasm_obj_array_set,mono_obj_array_new_ref:kt.mono_wasm_obj_array_new_ref,mono_obj_array_set_ref:kt.mono_wasm_obj_array_set_ref})),e||t.removeRunDependency("mono_wasm_pre_init_essential")}function Ol(e,t){St.mono_wasm_setenv(e,t)}function Ml(e,t){lt("mono_wasm_load_runtime");try{const n=Jt();null==t&&(t=0,l.config.debugLevel&&(t=0+t)),St.mono_wasm_load_runtime(e||"unused",t),Yt(n,"mono.loadRuntime")}catch(e){throw dt("mono_wasm_load_runtime () failed",e),u.mono_exit(1,e),e}}async function Fl(e){tr=null,null.addEventListener("dotnet:pthread:created",(e=>{lt("pthread created 0x"+e.pthread_self.pthreadId.toString(16))})),e.preInit=[()=>async function(){lt("worker initializing essential C exports and APIs");const e=Jt();try{lt("preInitWorker"),l.beforePreInit.promise_control.resolve(),Bl(!0),await Io(),l.afterPreInit.promise_control.resolve(),Yt(e,"mono.preInitWorker")}catch(e){throw dt("user preInitWorker() failed",e),u.mono_exit(1,e),e}}()],e.instantiateWasm=Dl,await l.afterPreInit.promise}function Pl(n){const r=t,o=n,a=globalThis;p||function(e){Fc=e.mono,Pc=e.binding}(o),p||(Object.assign(o.mono,{mono_wasm_setenv:Ol,mono_wasm_load_bytes_into_heap:ye,mono_wasm_load_icu_data:ya,mono_wasm_runtime_ready:mono_wasm_runtime_ready,mono_wasm_new_root_buffer:Ne,mono_wasm_new_root:Be,mono_wasm_new_external_root:De,mono_wasm_release_roots:Oe,mono_run_main:Oc,mono_run_main_and_exit:Bc,mono_wasm_add_assembly:null,mono_wasm_load_runtime:Ml,config:l.config,loaded_files:[],setB32:z,setI8:J,setI16:Y,setI32:Z,setI52:Q,setU52:ee,setI64Big:te,setU8:V,setU16:H,setU32:q,setF32:ne,setF64:re,getB32:oe,getI8:pe,getI16:de,getI32:_e,getI52:fe,getU52:me,getI64Big:he,getU8:ae,getU16:se,getU32:ie,getF32:be,getF64:ge}),Object.assign(o.binding,{bind_static_method:El,call_assembly_entry_point:Ul,mono_obj_array_new:null,mono_obj_array_set:null,js_string_to_mono_string:dl,js_typed_array_to_array:Xc,mono_array_to_js_array:gl,js_to_mono_obj:Gc,conv_string:Sl,unbox_mono_obj:ml,mono_obj_array_new_ref:null,mono_obj_array_set_ref:null,js_string_to_mono_string_root:ot,js_typed_array_to_array_root:Yc,js_to_mono_obj_root:qc,conv_string_root:rt,unbox_mono_obj_root:bl,mono_array_root_to_js_array:yl}),Object.assign(o.internal,{stringToMonoStringIntern:_l,mono_method_resolve:al})),Object.assign(o.internal,{mono_wasm_exit:e=>{t.err("early exit "+e)},forceDisposeProxies:Vr,logging:void 0,mono_wasm_stringify_as_error_with_stack:ht,mono_wasm_get_loaded_files:ka,mono_wasm_send_dbg_command_with_parms:Dt,mono_wasm_send_dbg_command:Bt,mono_wasm_get_dbg_command_info:Ot,mono_wasm_get_details:Wt,mono_wasm_release_object:qt,mono_wasm_call_function_on:Ht,mono_wasm_debugger_resume:Mt,mono_wasm_detach_debugger:Ft,mono_wasm_raise_debug_event:zt,mono_wasm_change_debugger_log_level:Pt,mono_wasm_debugger_attached:Vt,mono_wasm_runtime_is_ready:l.mono_wasm_runtime_is_ready,mono_wasm_get_func_id_to_name_mappings:bt,get_property:ar,set_property:or,has_property:sr,get_typeof_property:ir,get_global_this:cr,get_dotnet_instance:()=>c,dynamic_import:pr,mono_wasm_cancel_promise:qr,ws_wasm_create:pa,ws_wasm_open:da,ws_wasm_send:_a,ws_wasm_receive:fa,ws_wasm_close:ma,ws_wasm_abort:ha,ws_get_state:ua,http_wasm_supports_streaming_response:jo,http_wasm_create_abort_controler:Ao,http_wasm_abort_request:Ro,http_wasm_abort_response:Lo,http_wasm_fetch:$o,http_wasm_fetch_bytes:Co,http_wasm_get_response_header_names:Do,http_wasm_get_response_header_values:Bo,http_wasm_get_response_bytes:Mo,http_wasm_get_response_length:Oo,http_wasm_get_streamed_response_bytes:Fo,jiterpreter_dump_stats:Pi,jiterpreter_apply_options:ss,jiterpreter_get_options:is,mono_wasm_gc_lock:Vi,mono_wasm_gc_unlock:Hi,loadLazyAssembly:Wi,loadSatelliteAssemblies:Gi}),Object.assign(l,{stringify_as_error_with_stack:ht,instantiate_symbols_asset:Sa,instantiate_asset:wa,jiterpreter_dump_stats:Pi,forceDisposeProxies:Vr});const s={runMain:Oc,runMainAndExit:Bc,setEnvironmentVariable:Ol,getAssemblyExports:Er,setModuleImports:rr,getConfig:()=>l.config,invokeLibraryInitializers:u.invokeLibraryInitializers,setHeapB32:z,setHeapU8:V,setHeapU16:H,setHeapU32:q,setHeapI8:J,setHeapI16:Y,setHeapI32:Z,setHeapI52:Q,setHeapU52:ee,setHeapI64Big:te,setHeapF32:ne,setHeapF64:re,getHeapB32:oe,getHeapU8:ae,getHeapU16:se,getHeapU32:ie,getHeapI8:pe,getHeapI16:de,getHeapI32:_e,getHeapI52:fe,getHeapU52:me,getHeapI64Big:he,getHeapF32:be,getHeapF64:ge,localHeapViewU8:Ee,localHeapViewU16:Ue,localHeapViewU32:Ie,localHeapViewI8:we,localHeapViewI16:Se,localHeapViewI32:ke,localHeapViewI64Big:ve,localHeapViewF32:xe,localHeapViewF64:Te};if(Object.assign(c,{INTERNAL:o.internal,Module:r,runtimeBuildInfo:{productVersion:e,gitHash:l.gitHash,buildConfiguration:"Release"},...s}),p||Object.assign(c,{MONO:o.mono,BINDING:o.binding}),void 0===r.disableDotnet6Compatibility&&(r.disableDotnet6Compatibility=!0),!r.disableDotnet6Compatibility){Object.assign(r,c),p||(r.mono_bind_static_method=(e,t)=>(pt("Module.mono_bind_static_method is obsolete, please use [JSExportAttribute] interop instead"),El(e,t)));const e=(e,t)=>{if(void 0!==a[e])return;let n;Object.defineProperty(globalThis,e,{get:()=>{if(A(n)){const r=(new Error).stack,o=r?r.substr(r.indexOf("\n",8)+1):"";pt(`global ${e} is obsolete, please use Module.${e} instead ${o}`),n=t()}return n}})};a.MONO=o.mono,a.BINDING=o.binding,a.INTERNAL=o.internal,a.Module=r,e("cwrap",(()=>r.cwrap)),e("addRunDependency",(()=>r.addRunDependency)),e("removeRunDependency",(()=>r.removeRunDependency))}let i;return a.getDotnetRuntime?i=a.getDotnetRuntime.__list:(a.getDotnetRuntime=e=>a.getDotnetRuntime.__list.getRuntime(e),a.getDotnetRuntime.__list=i=new zl),i.registerRuntime(c),c}class zl{constructor(){this.list={}}registerRuntime(e){return e.runtimeId=Object.keys(this.list).length,this.list[e.runtimeId]=hr(e),e.runtimeId}getRuntime(e){const t=this.list[e];return t?t.deref():void 0}}export{Nl as configureEmscriptenStartup,$l as configureRuntimeStartup,Fl as configureWorkerStartup,Pl as initializeExports,Uo as initializeReplacements,b as passEmscriptenInternals,g as setRuntimeGlobals};
+//# sourceMappingURL=dotnet.runtime.js.map
diff --git a/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.br b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.br
new file mode 100644
index 0000000..a124aa8
Binary files /dev/null and b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.br differ
diff --git a/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.gz b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.gz
new file mode 100644
index 0000000..2b4d7eb
Binary files /dev/null and b/_framework/dotnet.runtime.8.0.7.3dp1i72u0p.js.gz differ
diff --git a/_framework/icudt_CJK.dat b/_framework/icudt_CJK.dat
new file mode 100755
index 0000000..118a60d
Binary files /dev/null and b/_framework/icudt_CJK.dat differ
diff --git a/_framework/icudt_CJK.dat.br b/_framework/icudt_CJK.dat.br
new file mode 100644
index 0000000..8c76517
Binary files /dev/null and b/_framework/icudt_CJK.dat.br differ
diff --git a/_framework/icudt_CJK.dat.gz b/_framework/icudt_CJK.dat.gz
new file mode 100644
index 0000000..430a8db
Binary files /dev/null and b/_framework/icudt_CJK.dat.gz differ
diff --git a/_framework/icudt_EFIGS.dat b/_framework/icudt_EFIGS.dat
new file mode 100755
index 0000000..e4c1c91
Binary files /dev/null and b/_framework/icudt_EFIGS.dat differ
diff --git a/_framework/icudt_EFIGS.dat.br b/_framework/icudt_EFIGS.dat.br
new file mode 100644
index 0000000..d8755b4
Binary files /dev/null and b/_framework/icudt_EFIGS.dat.br differ
diff --git a/_framework/icudt_EFIGS.dat.gz b/_framework/icudt_EFIGS.dat.gz
new file mode 100644
index 0000000..7aa0f38
Binary files /dev/null and b/_framework/icudt_EFIGS.dat.gz differ
diff --git a/icudt.dat b/_framework/icudt_no_CJK.dat
similarity index 55%
rename from icudt.dat
rename to _framework/icudt_no_CJK.dat
index 54093bd..87b08e0 100755
Binary files a/icudt.dat and b/_framework/icudt_no_CJK.dat differ
diff --git a/_framework/icudt_no_CJK.dat.br b/_framework/icudt_no_CJK.dat.br
new file mode 100644
index 0000000..3acc4ee
Binary files /dev/null and b/_framework/icudt_no_CJK.dat.br differ
diff --git a/_framework/icudt_no_CJK.dat.gz b/_framework/icudt_no_CJK.dat.gz
new file mode 100644
index 0000000..fcc454f
Binary files /dev/null and b/_framework/icudt_no_CJK.dat.gz differ
diff --git a/_framework/netstandard.wasm b/_framework/netstandard.wasm
new file mode 100644
index 0000000..a687385
Binary files /dev/null and b/_framework/netstandard.wasm differ
diff --git a/_framework/netstandard.wasm.br b/_framework/netstandard.wasm.br
new file mode 100644
index 0000000..8224539
Binary files /dev/null and b/_framework/netstandard.wasm.br differ
diff --git a/_framework/netstandard.wasm.gz b/_framework/netstandard.wasm.gz
new file mode 100644
index 0000000..2eaf6bf
Binary files /dev/null and b/_framework/netstandard.wasm.gz differ
diff --git a/_framework/storage.js b/_framework/storage.js
new file mode 100755
index 0000000..5ddc5cd
--- /dev/null
+++ b/_framework/storage.js
@@ -0,0 +1,2 @@
+var ye=Object.defineProperty;var De=(o,e,t)=>e in o?ye(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var y=(o,e)=>()=>(o&&(e=o(o=0)),e);var H=(o,e)=>{for(var t in e)ye(o,t,{get:e[t],enumerable:!0})};var w=(o,e,t)=>(De(o,typeof e!="symbol"?e+"":e,t),t);var Ie,D,G=y(()=>{Ie={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},D=Ie});var $={};H($,{FileHandle:()=>_,FolderHandle:()=>A,Sink:()=>V,default:()=>je});var z,Be,p,We,g,ve,Re,ie,yr,Oe,V,_,A,Ne,je,X=y(()=>{M();G();({File:z,Blob:Be,DOMException:p}=D),{INVALID:We,GONE:g,MISMATCH:ve,MOD_ERR:Re,SYNTAX:ie,SECURITY:yr,DISALLOWED:Oe}=T,V=class{constructor(e,t){this.fileHandle=e,this.file=t,this.size=t.size,this.position=0}write(e){let t=this.file;if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.position=e.position,this.size=0){if(this.size=0){t=e.sizet.size&&(this.position=t.size),this.file=t;return}else throw new p(...ie("truncate requires a size argument"))}e=new Be([e]);let r=this.file,i=r.slice(0,this.position),n=r.slice(this.position+e.size),a=this.position-i.size;a<0&&(a=0),r=new z([i,new Uint8Array(a),e,n],r.name),this.size=r.size,this.position+=e.size,this.file=r}close(){if(this.fileHandle._deleted)throw new p(...g);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},_=class{constructor(e="",t=new z([],e),r=!0){this._file=t,this.name=e,this.kind="file",this._deleted=!1,this.writable=r,this.readable=!0}async getFile(){if(this._deleted)throw new p(...g);return this._file}async createWritable(e){if(!this.writable)throw new p(...Oe);if(this._deleted)throw new p(...g);let t=e.keepExistingData?await this.getFile():new z([],this.name);return new V(this,t)}async isSameEntry(e){return this===e}async _destroy(){this._deleted=!0,this._file=null}},A=class{constructor(e,t=!0){this.name=e,this.kind="directory",this._deleted=!1,this._entries={},this.writable=t,this.readable=!0}async*entries(){if(this._deleted)throw new p(...g);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new p(...g);let r=this._entries[e];if(r){if(r instanceof _)throw new p(...ve);return r}else{if(t.create)return this._entries[e]=new A(e);throw new p(...g)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof _;if(r&&i)return r;if(r&&!i)throw new p(...ve);if(!r&&!t.create)throw new p(...g);if(!r&&t.create)return this._entries[e]=new _(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new p(...g);await r._destroy(t.recursive),delete this._entries[e]}async _destroy(e){for(let t of Object.values(this._entries)){if(!e)throw new p(...Re);await t._destroy(e)}this._entries={},this._deleted=!0}},Ne=new A(""),je=()=>Ne});var ne={};H(ne,{FileHandle:()=>O,FolderHandle:()=>v,default:()=>qe});var Ue,Y,O,v,qe,ae=y(()=>{M();({DISALLOWED:Ue}=T),Y=class{constructor(e,t){this.writer=e,this.fileEntry=t}async write(e){if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.writer.seek(e.position),this.writer.position!==e.position&&(await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.truncate(e.position)}),this.writer.seek(e.position))),!("data"in e))throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. write requires a data argument","SyntaxError");e=e.data}else if(e.type==="seek")if(Number.isInteger(e.position)&&e.position>=0){if(this.writer.seek(e.position),this.writer.position!==e.position)throw new DOMException("seeking position failed","InvalidStateError");return}else throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. seek requires a position argument","SyntaxError");else if(e.type==="truncate")return new Promise(t=>{if(Number.isInteger(e.size)&&e.size>=0)this.writer.onwriteend=r=>t(),this.writer.truncate(e.size);else throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. truncate requires a size argument","SyntaxError")})}await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.write(new Blob([e]))})}close(){return new Promise(this.fileEntry.file.bind(this.fileEntry))}},O=class{constructor(e,t=!0){this.file=e,this.kind="file",this.writable=t,this.readable=!0}get name(){return this.file.name}isSameEntry(e){return this.file.toURL()===e.file.toURL()}getFile(){return new Promise(this.file.file.bind(this.file))}createWritable(e){if(!this.writable)throw new DOMException(...Ue);return new Promise((t,r)=>this.file.createWriter(i=>{e.keepExistingData===!1?(i.onwriteend=n=>t(new Y(i,this.file)),i.truncate(0)):t(new Y(i,this.file))},r))}},v=class{constructor(e,t=!0){this.dir=e,this.writable=t,this.readable=!0,this.kind="directory",this.name=e.name}isSameEntry(e){return this.dir.fullPath===e.dir.fullPath}async*entries(){let e=this.dir.createReader(),t=await new Promise(e.readEntries.bind(e));for(let r of t)yield[r.name,r.isFile?new O(r,this.writable):new v(r,this.writable)]}getDirectoryHandle(e,t){return new Promise((r,i)=>{this.dir.getDirectory(e,t,n=>{r(new v(n))},i)})}getFileHandle(e,t){return new Promise((r,i)=>this.dir.getFile(e,t,n=>r(new O(n)),i))}async removeEntry(e,t){let r=await this.getDirectoryHandle(e,{create:!1}).catch(i=>i.name==="TypeMismatchError"?this.getFileHandle(e,{create:!1}):i);if(r instanceof Error)throw r;return new Promise((i,n)=>{r instanceof v?t.recursive?r.dir.removeRecursively(()=>i(),n):r.dir.remove(()=>i(),n):r.file&&r.file.remove(()=>i(),n)})}},qe=(o={})=>new Promise((e,t)=>window.webkitRequestFileSystem(o._persistent,0,r=>e(new v(r.root)),t))});var S,Ke,Q,N,J=y(()=>{S=Symbol("adapter"),Q=class{constructor(e){w(this,Ke);w(this,"name");w(this,"kind");this.kind=e.kind,this.name=e.name,this[S]=e}async queryPermission({mode:e="read"}={}){let t=this[S];if(t.queryPermission)return t.queryPermission({mode:e});if(e==="read")return"granted";if(e==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e} must be 'read' or 'readwrite'`)}async requestPermission({mode:e="read"}={}){let t=this[S];if(t.requestPermission)return t.requestPermission({mode:e});if(e==="read")return"granted";if(e==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e} must be 'read' or 'readwrite'`)}async remove(e={}){await this[S].remove(e)}async isSameEntry(e){return this===e?!0:!e||typeof e!="object"||this.kind!==e.kind||!e[S]?!1:this[S].isSameEntry(e[S])}};Ke=S;Object.defineProperty(Q.prototype,Symbol.toStringTag,{value:"FileSystemHandle",writable:!1,enumerable:!1,configurable:!0});N=Q});var Ge,C,oe,se=y(()=>{G();({WritableStream:Ge}=D),C=class extends Ge{constructor(...e){super(...e),Object.setPrototypeOf(this,C.prototype),this._closed=!1}close(){this._closed=!0;let e=this.getWriter(),t=e.close();return e.releaseLock(),t}seek(e){return this.write({type:"seek",position:e})}truncate(e){return this.write({type:"truncate",size:e})}write(e){if(this._closed)return Promise.reject(new TypeError("Cannot write to a CLOSED writable stream"));let t=this.getWriter(),r=t.write(e);return t.releaseLock(),r}};Object.defineProperty(C.prototype,Symbol.toStringTag,{value:"FileSystemWritableFileStream",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(C.prototype,{close:{enumerable:!0},seek:{enumerable:!0},truncate:{enumerable:!0},write:{enumerable:!0}});oe=C});var F={};H(F,{FileSystemFileHandle:()=>I,default:()=>Se});var Z,Ve,I,Se,E=y(()=>{J();se();Z=Symbol("adapter"),I=class extends N{constructor(t){super(t);w(this,Ve);this[Z]=t}async createWritable(t={}){return new oe(await this[Z].createWritable(t))}async getFile(){return this[Z].getFile()}};Ve=Z;Object.defineProperty(I.prototype,Symbol.toStringTag,{value:"FileSystemFileHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(I.prototype,{createWritable:{enumerable:!0},getFile:{enumerable:!0}});Se=I});var ee={};H(ee,{FileSystemDirectoryHandle:()=>f,default:()=>Ee});var x,$e,f,Ee,j=y(()=>{J();x=Symbol("adapter"),f=class extends N{constructor(t){super(t);w(this,$e);this[x]=t}async getDirectoryHandle(t,r={}){if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");r.create=!!r.create;let i=await this[x].getDirectoryHandle(t,r);return new f(i)}async*entries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(E(),F));for await(let[r,i]of this[x].entries())yield[i.name,i.kind==="file"?new t(i):new f(i)]}async*getEntries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(E(),F));console.warn("deprecated, use .entries() instead");for await(let r of this[x].entries())yield r.kind==="file"?new t(r):new f(r)}async getFileHandle(t,r={}){let{FileSystemFileHandle:i}=await Promise.resolve().then(()=>(E(),F));if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");r.create=!!r.create;let n=await this[x].getFileHandle(t,r);return new i(n)}async removeEntry(t,r={}){if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");return r.recursive=!!r.recursive,this[x].removeEntry(t,r)}async resolve(t){if(await t.isSameEntry(this))return[];let r=[{handle:this,path:[]}];for(;r.length;){let{handle:i,path:n}=r.pop();for await(let a of i.values()){if(await a.isSameEntry(t))return[...n,a.name];a.kind==="directory"&&r.push({handle:a,path:[...n,a.name]})}}return null}async*keys(){for await(let[t]of this[x].entries())yield t}async*values(){for await(let[t,r]of this)yield r}[($e=x,Symbol.asyncIterator)](){return this.entries()}};Object.defineProperty(f.prototype,Symbol.toStringTag,{value:"FileSystemDirectoryHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(f.prototype,{getDirectoryHandle:{enumerable:!0},entries:{enumerable:!0},getFileHandle:{enumerable:!0},removeEntry:{enumerable:!0}});Ee=f});var le={};H(le,{config:()=>Xe,errors:()=>T,fromDataTransfer:()=>Ye,getDirHandlesFromInput:()=>Qe,getFileHandlesFromInput:()=>Je});async function Ye(o){console.warn("deprecated fromDataTransfer - use `dt.items[0].getAsFileSystemHandle()` instead");let[e,t,r]=await Promise.all([Promise.resolve().then(()=>(X(),$)),Promise.resolve().then(()=>(ae(),ne)),Promise.resolve().then(()=>(j(),ee))]),i=new e.FolderHandle("",!1);return i._entries=o.map(n=>n.isFile?new t.FileHandle(n,!1):new t.FolderHandle(n,!1)),new r.FileSystemDirectoryHandle(i)}async function Qe(o){let{FolderHandle:e,FileHandle:t}=await Promise.resolve().then(()=>(X(),$)),{FileSystemDirectoryHandle:r}=await Promise.resolve().then(()=>(j(),ee)),i=Array.from(o.files),n=i[0].webkitRelativePath.split("/",1)[0],a=new e(n,!1);return i.forEach(s=>{let c=s.webkitRelativePath.split("/");c.shift();let u=c.pop(),d=c.reduce((m,l)=>(m._entries[l]||(m._entries[l]=new e(l,!1)),m._entries[l]),a);d._entries[u]=new t(s.name,s,!1)}),new r(a)}async function Je(o){let{FileHandle:e}=await Promise.resolve().then(()=>(X(),$)),{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(E(),F));return Array.from(o.files).map(r=>new t(new e(r.name,r,!1)))}var T,Xe,M=y(()=>{T={INVALID:["seeking position failed.","InvalidStateError"],GONE:["A requested file or directory could not be found at the time an operation was processed.","NotFoundError"],MISMATCH:["The path supplied exists, but was not an entry of requested type.","TypeMismatchError"],MOD_ERR:["The object can not be modified in this way.","InvalidModificationError"],SYNTAX:o=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${o}`,"SyntaxError"],SECURITY:["It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.","SecurityError"],DISALLOWED:["The request is not allowed by the user agent or the platform in the current context.","NotAllowedError"]},Xe={writable:globalThis.WritableStream}});var ke={};H(ke,{FileHandle:()=>ue});var Te,Ce,rt,Fe,it,nt,ue,at,ot,st,lt,ct,pe,me,He=y(()=>{M();G();({WritableStream:Te,TransformStream:Ce,DOMException:rt,Blob:Fe}=D),{GONE:it}=T,nt=/constructor/i.test(window.HTMLElement)||window.safari||window.WebKitPoint,ue=class{constructor(e="unkown"){this.name=e,this.kind="file"}async getFile(){throw new rt(...it)}async isSameEntry(e){return this===e}async createWritable(e={}){var a;let t=await((a=navigator.serviceWorker)==null?void 0:a.getRegistration()),r=document.createElement("a"),i=new Ce,n=i.writable;if(r.download=this.name,nt||!t){let s=[];i.readable.pipeTo(new Te({write(c){s.push(new Fe([c]))},close(){let c=new Fe(s,{type:"application/octet-stream; charset=utf-8"});s=[],r.href=URL.createObjectURL(c),r.click(),setTimeout(()=>URL.revokeObjectURL(r.href),1e4)}}))}else{let{writable:s,readablePort:c}=new me(Te),u=encodeURIComponent(this.name).replace(/['()]/g,escape).replace(/\*/g,"%2A"),d={"content-disposition":"attachment; filename*=UTF-8''"+u,"content-type":"application/octet-stream; charset=utf-8",...e.size?{"content-length":e.size}:{}},m=setTimeout(()=>t.active.postMessage(0),1e4);i.readable.pipeThrough(new Ce({transform(h,k){if(h instanceof Uint8Array)return k.enqueue(h);let U=new Response(h).body.getReader(),B=ut=>U.read().then(fe=>fe.done?0:B(k.enqueue(fe.value)));return B()}})).pipeTo(s).finally(()=>{clearInterval(m)}),t.active.postMessage({url:t.scope+u,headers:d,readablePort:c},[c]);let l=document.createElement("iframe");l.hidden=!0,l.src=t.scope+u,document.body.appendChild(l)}return n.getWriter()}},at=0,ot=0,st=1,lt=1,ct=2,pe=class{constructor(e){e.onmessage=t=>this._onMessage(t.data),this._port=e,this._resetReady()}start(e){return this._controller=e,this._readyPromise}write(e){let t={type:at,chunk:e};return this._port.postMessage(t,[e.buffer]),this._resetReady(),this._readyPromise}close(){this._port.postMessage({type:ct}),this._port.close()}abort(e){this._port.postMessage({type:lt,reason:e}),this._port.close()}_onMessage(e){e.type===ot&&this._resolveReady(),e.type===st&&this._onError(e.reason)}_onError(e){this._controller.error(e),this._rejectReady(e),this._port.close()}_resetReady(){this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPending=!0}_resolveReady(){this._readyResolve(),this._readyPending=!1}_rejectReady(e){this._readyPending||this._resetReady(),this._readyPromise.catch(()=>{}),this._readyReject(e),this._readyPending=!1}},me=class{constructor(e){let t=new MessageChannel;this.readablePort=t.port1,this.writable=new e(new pe(t.port2))}}});var te=class{constructor(e){this.database=e}openStore(e,t){return this.database.transaction(e,t).objectStore(e)}async put(e,t,r){let i=this.openStore(e,"readwrite");return await new Promise((n,a)=>{let s=i.put(t,r);s.onsuccess=()=>{n(s.result)},s.onerror=()=>{a(s.error)}})}get(e,t){let r=this.openStore(e,"readonly");return new Promise((i,n)=>{let a=r.get(t);a.onsuccess=()=>{i(a.result)},a.onerror=()=>{n(a.error)}})}async delete(e,t){let r=this.openStore(e,"readwrite");return await new Promise((i,n)=>{let a=r.delete(t);a.onsuccess=()=>{i()},a.onerror=()=>{n(a.error)}})}close(){this.database.close()}},re=class{constructor(e,t){this.databaseName=e;this.objectStores=t}async connect(){let e=window.indexedDB.open(this.databaseName,1);return e.onupgradeneeded=t=>{let r=t.target.result;this.objectStores.forEach(i=>{r.createObjectStore(i)})},await new Promise((t,r)=>{e.onsuccess=i=>{t(new te(i.target.result))},e.onerror=i=>{r(i.target.error)}})}},L="fileBookmarks",W=new re("AvaloniaDb",[L]);var q=class{static getCaretCoordinates(e,t,r){var m,l;if(!we)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");let i=(m=r==null?void 0:r.debug)!=null?m:!1;if(i){let h=document.querySelector("#input-textarea-caret-position-mirror-div");h&&((l=h.parentNode)==null||l.removeChild(h))}let n=document.createElement("div");n.id="input-textarea-caret-position-mirror-div",document.body.appendChild(n);let a=n.style,s=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle,c=e.nodeName==="INPUT";a.whiteSpace="pre-wrap",c||(a.wordWrap="break-word"),a.position="absolute",i||(a.visibility="hidden"),ze.forEach(h=>{if(c&&h==="lineHeight")if(s.boxSizing==="border-box"){let k=parseInt(s.height),U=parseInt(s.paddingTop)+parseInt(s.paddingBottom)+parseInt(s.borderTopWidth)+parseInt(s.borderBottomWidth),B=U+parseInt(s.lineHeight);k>B?a.lineHeight=`${k-U}px`:k===B?a.lineHeight=s.lineHeight:a.lineHeight="0"}else a.lineHeight=s.height;else a[h]=s[h]}),_e?e.scrollHeight>parseInt(s.height)&&(a.overflowY="scroll"):a.overflow="hidden",n.textContent=e.value.substring(0,t),c&&(n.textContent=n.textContent.replace(/\s/g,"\xA0"));let u=document.createElement("span");u.textContent=e.value.substring(t)||".",n.appendChild(u);let d={top:u.offsetTop+parseInt(s.borderTopWidth),left:u.offsetLeft+parseInt(s.borderLeftWidth),height:parseInt(s.lineHeight)};return i?u.style.backgroundColor="#aaa":document.body.removeChild(n),d}},ze=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],we=typeof window!="undefined",_e=we&&window.mozInnerScreenX!=null;var K=class{static initializeBackgroundHandlers(){this.clipboardState===0&&(globalThis.addEventListener("paste",e=>{this.clipboardState===2&&this.resolveClipboard(e.clipboardData.getData("text"))}),this.clipboardState=1)}static async readClipboardText(){if(globalThis.navigator.clipboard.readText)return await globalThis.navigator.clipboard.readText();try{return await new Promise((e,t)=>{this.clipboardState=2,this.resolveClipboard=e,this.rejectClipboard=t})}finally{this.clipboardState=1,this.resolveClipboard=null,this.rejectClipboard=null}}static subscribeKeyEvents(e,t,r){let i=a=>{t(a.code,a.key,this.getModifiers(a))&&this.clipboardState!==2&&a.preventDefault()};e.addEventListener("keydown",i);let n=a=>{r(a.code,a.key,this.getModifiers(a))&&a.preventDefault(),this.rejectClipboard&&this.rejectClipboard()};return e.addEventListener("keyup",n),()=>{e.removeEventListener("keydown",i),e.removeEventListener("keyup",n)}}static subscribeTextEvents(e,t,r,i,n){let a=d=>{r(d)&&d.preventDefault()};e.addEventListener("compositionstart",a);let s=d=>{let m=d.getTargetRanges(),l=-1,h=-1;m.length>0&&(l=m[0].startOffset,h=m[0].endOffset),d.inputType==="insertCompositionText"&&(l=2,h=l+2),t(d,l,h)&&d.preventDefault()};e.addEventListener("beforeinput",s);let c=d=>{i(d)&&d.preventDefault()};e.addEventListener("compositionupdate",c);let u=d=>{n(d)&&d.preventDefault()};return e.addEventListener("compositionend",u),()=>{e.removeEventListener("compositionstart",a),e.removeEventListener("compositionupdate",c),e.removeEventListener("compositionend",u)}}static subscribePointerEvents(e,t,r,i,n,a){let s=l=>{t(l),l.preventDefault()},c=l=>{r(l),l.preventDefault()},u=l=>{i(l),l.preventDefault()},d=l=>{n(l),l.preventDefault()},m=l=>{a(l),l.preventDefault()};return e.addEventListener("pointermove",s),e.addEventListener("pointerdown",c),e.addEventListener("pointerup",u),e.addEventListener("wheel",m),e.addEventListener("pointercancel",d),()=>{e.removeEventListener("pointerover",s),e.removeEventListener("pointerdown",c),e.removeEventListener("pointerup",u),e.removeEventListener("pointercancel",d),e.removeEventListener("wheel",m)}}static subscribeInputEvents(e,t){let r=i=>{t(i.value)&&i.preventDefault()};return e.addEventListener("input",r),()=>{e.removeEventListener("input",r)}}static subscribeDropEvents(e,t){let r=i=>{t(i)&&i.preventDefault()};return e.addEventListener("dragover",r),e.addEventListener("dragenter",r),e.addEventListener("dragleave",r),e.addEventListener("drop",r),()=>{e.removeEventListener("dragover",r),e.removeEventListener("dragenter",r),e.removeEventListener("dragleave",r),e.removeEventListener("drop",r)}}static getCoalescedEvents(e){return e.getCoalescedEvents()}static subscribeKeyboardGeometryChange(e,t){"virtualKeyboard"in navigator&&navigator.virtualKeyboard.addEventListener("geometrychange",r=>{let i=e.getBoundingClientRect(),n=r.target.boundingRect;t({x:n.x-i.x,y:n.y-i.y,width:n.width,height:n.height})})}static subscribeVisibilityChange(e){return document.addEventListener("visibilitychange",()=>{e(document.visibilityState==="visible")}),document.visibilityState==="visible"}static clearInput(e){e.value=""}static focusElement(e){e.focus()}static setCursor(e,t){t==="default"?e.style.removeProperty("cursor"):e.style.cursor=t}static setBounds(e,t,r,i,n,a){e.style.left=t.toFixed(0)+"px",e.style.top=r.toFixed(0)+"px";let{left:s,top:c}=q.getCaretCoordinates(e,a);e.style.left=(t-s).toFixed(0)+"px",e.style.top=(r-c).toFixed(0)+"px"}static hide(e){e.style.display="none"}static show(e){e.style.display="block"}static setSurroundingText(e,t,r,i){!e||(e.value=t,e.setSelectionRange(r,i),e.style.width="20px",e.style.width=`${e.scrollWidth}px`)}static getModifiers(e){let t=0;return e.ctrlKey&&(t|=2),e.altKey&&(t|=1),e.shiftKey&&(t|=4),e.metaKey&&(t|=8),t.toString()}static setPointerCapture(e,t){e.setPointerCapture(t)}static releasePointerCapture(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}};K.clipboardState=0;var P=class{static hasNativeFilePicker(){return"showSaveFilePicker"in globalThis}static isMobile(){var n;let e=(n=globalThis.navigator)==null?void 0:n.userAgentData;if(e)return e.mobile;let t=navigator.userAgent,r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,i=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;return r.test(t)||i.test(t.substr(0,4))}static isTv(){return navigator.userAgent.includes("SmartTV")}};var b=class{constructor(e,t,r,i){this.handle=e;this.file=t;this.bookmarkId=r;this.wellKnownType=i}get name(){var e;return this.handle?this.handle.name:this.file?this.file.name:(e=this.wellKnownType)!=null?e:""}get kind(){return this.handle?this.handle.kind:this.file?"file":"directory"}static createFromHandle(e,t){return new b(e,void 0,t,void 0)}static createFromFile(e){return new b(void 0,e,void 0,void 0)}static createWellKnownDirectory(e){return new b(void 0,void 0,void 0,e)}static async openRead(e){if(e.file)return e.file;if(!e.handle||e.kind!=="file")throw new Error("StorageItem is not a file");return await e.verityPermissions("read"),await e.handle.getFile()}static async openWrite(e){if(!e.handle||e.kind!=="file")throw new Error("StorageItem is not a writeable file");return await e.verityPermissions("readwrite"),await e.handle.createWritable({keepExistingData:!0})}static async getProperties(e){try{let t=e.handle&&"getFile"in e.handle?await e.handle.getFile():e.file;return t?{Size:t.size,LastModified:t.lastModified,Type:t.type}:null}catch(t){return null}}static getItemsIterator(e){return e.kind!=="directory"||!e.handle?null:e.handle.entries()}static async createFile(e,t){if(e.kind!=="directory"||!e.handle)throw new TypeError("Unable to create item in the requested directory");return await e.verityPermissions("readwrite"),await e.handle.getFileHandle(t,{create:!0})}static async createFolder(e,t){if(e.kind!=="directory"||!e.handle)throw new TypeError("Unable to create item in the requested directory");return await e.verityPermissions("readwrite"),await e.handle.getDirectoryHandle(t,{create:!0})}static async deleteAsync(e){return e.handle?(await e.verityPermissions("readwrite"),await e.handle.remove({recursive:!0})):null}static async moveAsync(e,t){if(!e.handle)return null;if(t.kind!=="directory"||!t.handle)throw new TypeError("Unable to move item to the requested directory");return await e.verityPermissions("readwrite"),await e.handle.move(t)}async verityPermissions(e){if(!!this.handle&&!!P.hasNativeFilePicker()&&await this.handle.queryPermission({mode:e})!=="granted"&&await this.handle.requestPermission({mode:e})==="denied")throw new Error("Permissions denied")}static async saveBookmark(e){if(e.bookmarkId)return e.bookmarkId;if(!e.handle||!P.hasNativeFilePicker())return null;let t=await W.connect();try{return await t.put(L,e.handle,e.generateBookmarkId())}finally{t.close()}}static async deleteBookmark(e){if(!e.bookmarkId||!P.hasNativeFilePicker())return;let t=await W.connect();try{await t.delete(L,e.bookmarkId)}finally{t.close()}}generateBookmarkId(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}},R=class{constructor(e){this.items=e}static itemsArray(e){return e.items}static filesToItemsArray(e){if(!e)return[];let t=[];for(let r=0;r(M(),le));return await new Promise(r=>{e.addEventListener("change",r),e.click()}),t.then(r=>r.getDirHandlesFromInput(e))}var ce=Ze;var et={accepts:[]},Pe=globalThis.showOpenFilePicker;async function tt(o={}){let e={...et,...o};if(Pe&&!o._preferPolyfill)return Pe(e);let t=document.createElement("input");t.type="file",t.multiple=e.multiple,t.accept=(e.accepts||[]).map(i=>[...(i.extensions||[]).map(n=>"."+n),...i.mimeTypes||[]]).flat().join(","),t.style.position="fixed",t.style.top="-100000px",t.style.left="-100000px",document.body.appendChild(t);let r=Promise.resolve().then(()=>(M(),le));return await new Promise(i=>{t.addEventListener("change",i),t.click()}),r.then(i=>i.getFileHandlesFromInput(t))}var de=tt;var Le=globalThis.showSaveFilePicker;async function dt(o={}){if(Le&&!o._preferPolyfill)return Le(o);o._name&&(console.warn("deprecated _name, spec now have `suggestedName`"),o.suggestedName=o._name);let{FileSystemFileHandle:e}=await Promise.resolve().then(()=>(E(),F)),{FileHandle:t}=await Promise.resolve().then(()=>(He(),ke));return new e(new t(o.suggestedName))}var he=dt;globalThis.DataTransferItem&&!DataTransferItem.prototype.getAsFileSystemHandle&&(DataTransferItem.prototype.getAsFileSystemHandle=async function(){let o=this.webkitGetAsEntry(),[{FileHandle:e,FolderHandle:t},{FileSystemDirectoryHandle:r},{FileSystemFileHandle:i}]=await Promise.all([Promise.resolve().then(()=>(ae(),ne)),Promise.resolve().then(()=>(j(),ee)),Promise.resolve().then(()=>(E(),F))]);return o.isFile?new i(new e(o,!1)):new r(new t(o,!1))});j();E();J();se();var be=class{static async selectFolderDialog(e,t){var n,a;let r={startIn:(a=(n=e==null?void 0:e.wellKnownType)!=null?n:e==null?void 0:e.handle)!=null?a:void 0,_preferPolyfill:t},i=await ce(r);return b.createFromHandle(i)}static async openFileDialog(e,t,r,i,n){var c,u;let a={startIn:(u=(c=e==null?void 0:e.wellKnownType)!=null?c:e==null?void 0:e.handle)!=null?u:void 0,multiple:t,excludeAcceptAllOption:i,types:r!=null?r:void 0,_preferPolyfill:n},s=await de(a);return new R(s.map(d=>b.createFromHandle(d)))}static async saveFileDialog(e,t,r,i,n){var c,u;let a={startIn:(u=(c=e==null?void 0:e.wellKnownType)!=null?c:e==null?void 0:e.handle)!=null?u:void 0,suggestedName:t!=null?t:void 0,excludeAcceptAllOption:i,types:r!=null?r:void 0,_preferPolyfill:n},s=await he(a);return b.createFromHandle(s)}static async openBookmark(e){let t=await W.connect();try{let r=await t.get(L,e);return r&&b.createFromHandle(r,e)}finally{t.close()}}static createAcceptType(e,t,r){let i={};return t.forEach(n=>{i[n]=r!=null?r:[]}),{description:e,accept:i}}};export{b as StorageItem,R as StorageItems,be as StorageProvider};
+//# sourceMappingURL=storage.js.map
diff --git a/_framework/storage.js.br b/_framework/storage.js.br
new file mode 100644
index 0000000..75d8c58
Binary files /dev/null and b/_framework/storage.js.br differ
diff --git a/_framework/storage.js.gz b/_framework/storage.js.gz
new file mode 100644
index 0000000..9aaa38a
Binary files /dev/null and b/_framework/storage.js.gz differ
diff --git a/storage.js.map b/_framework/storage.js.map
similarity index 64%
rename from storage.js.map
rename to _framework/storage.js.map
index 66aefd7..fbfac65 100755
--- a/storage.js.map
+++ b/_framework/storage.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../webapp/node_modules/native-file-system-adapter/src/config.js", "../webapp/node_modules/native-file-system-adapter/src/adapters/memory.js", "../webapp/node_modules/native-file-system-adapter/src/adapters/sandbox.js", "../webapp/node_modules/native-file-system-adapter/src/FileSystemHandle.js", "../webapp/node_modules/native-file-system-adapter/src/FileSystemWritableFileStream.js", "../webapp/node_modules/native-file-system-adapter/src/FileSystemFileHandle.js", "../webapp/node_modules/native-file-system-adapter/src/FileSystemDirectoryHandle.js", "../webapp/node_modules/native-file-system-adapter/src/util.js", "../webapp/node_modules/native-file-system-adapter/src/adapters/downloader.js", "../webapp/modules/storage/indexedDb.ts", "../webapp/modules/avalonia/caretHelper.ts", "../webapp/modules/avalonia/input.ts", "../webapp/modules/avalonia/caniuse.ts", "../webapp/modules/storage/storageItem.ts", "../webapp/node_modules/native-file-system-adapter/src/showDirectoryPicker.js", "../webapp/node_modules/native-file-system-adapter/src/showOpenFilePicker.js", "../webapp/node_modules/native-file-system-adapter/src/showSaveFilePicker.js", "../webapp/node_modules/native-file-system-adapter/src/getOriginPrivateDirectory.js", "../webapp/node_modules/native-file-system-adapter/src/es6.js", "../webapp/modules/storage/storageProvider.ts"],
- "sourcesContent": ["const config = {\n ReadableStream: globalThis.ReadableStream,\n WritableStream: globalThis.WritableStream,\n TransformStream: globalThis.TransformStream,\n DOMException: globalThis.DOMException,\n Blob: globalThis.Blob,\n File: globalThis.File,\n}\n\nexport default config\n", "import { errors } from '../util.js'\nimport config from '../config.js'\n\nconst { File, Blob, DOMException } = config\nconst { INVALID, GONE, MISMATCH, MOD_ERR, SYNTAX, SECURITY, DISALLOWED } = errors\n\nexport class Sink {\n\n /**\n * @param {FileHandle} fileHandle\n * @param {File} file\n */\n constructor (fileHandle, file) {\n this.fileHandle = fileHandle\n this.file = file\n this.size = file.size\n this.position = 0\n }\n\n write (chunk) {\n let file = this.file\n\n if (typeof chunk === 'object') {\n if (chunk.type === 'write') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.position = chunk.position\n if (this.size < chunk.position) {\n this.file = new File(\n [this.file, new ArrayBuffer(chunk.position - this.size)],\n this.file.name,\n this.file\n )\n }\n }\n if (!('data' in chunk)) {\n throw new DOMException(...SYNTAX('write requires a data argument'))\n }\n chunk = chunk.data\n } else if (chunk.type === 'seek') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n if (this.size < chunk.position) {\n throw new DOMException(...INVALID)\n }\n this.position = chunk.position\n return\n } else {\n throw new DOMException(...SYNTAX('seek requires a position argument'))\n }\n } else if (chunk.type === 'truncate') {\n if (Number.isInteger(chunk.size) && chunk.size >= 0) {\n file = chunk.size < this.size\n ? new File([file.slice(0, chunk.size)], file.name, file)\n : new File([file, new Uint8Array(chunk.size - this.size)], file.name)\n\n this.size = file.size\n if (this.position > file.size) {\n this.position = file.size\n }\n this.file = file\n return\n } else {\n throw new DOMException(...SYNTAX('truncate requires a size argument'))\n }\n }\n }\n\n chunk = new Blob([chunk])\n\n let blob = this.file\n // Calc the head and tail fragments\n const head = blob.slice(0, this.position)\n const tail = blob.slice(this.position + chunk.size)\n\n // Calc the padding\n let padding = this.position - head.size\n if (padding < 0) {\n padding = 0\n }\n blob = new File([\n head,\n new Uint8Array(padding),\n chunk,\n tail\n ], blob.name)\n\n this.size = blob.size\n this.position += chunk.size\n\n this.file = blob\n }\n close () {\n if (this.fileHandle._deleted) throw new DOMException(...GONE)\n this.fileHandle._file = this.file\n this.file =\n this.position =\n this.size = null\n if (this.fileHandle.onclose) {\n this.fileHandle.onclose(this.fileHandle)\n }\n }\n}\n\nexport class FileHandle {\n constructor (name = '', file = new File([], name), writable = true) {\n this._file = file\n this.name = name\n this.kind = 'file'\n this._deleted = false\n this.writable = writable\n this.readable = true\n }\n\n async getFile () {\n if (this._deleted) throw new DOMException(...GONE)\n return this._file\n }\n\n async createWritable (opts) {\n if (!this.writable) throw new DOMException(...DISALLOWED)\n if (this._deleted) throw new DOMException(...GONE)\n\n const file = opts.keepExistingData\n ? await this.getFile()\n : new File([], this.name)\n\n return new Sink(this, file)\n }\n\n async isSameEntry (other) {\n return this === other\n }\n\n async _destroy () {\n this._deleted = true\n this._file = null\n }\n}\n\nexport class FolderHandle {\n\n /** @param {string} name */\n constructor (name, writable = true) {\n this.name = name\n this.kind = 'directory'\n this._deleted = false\n /** @type {Object.} */\n this._entries = {}\n this.writable = writable\n this.readable = true\n }\n\n /** @returns {AsyncGenerator<[string, FileHandle | FolderHandle]>} */\n async * entries () {\n if (this._deleted) throw new DOMException(...GONE)\n yield* Object.entries(this._entries)\n }\n\n async isSameEntry (other) {\n return this === other\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n */\n async getDirectoryHandle (name, opts) {\n if (this._deleted) throw new DOMException(...GONE)\n const entry = this._entries[name]\n if (entry) { // entry exist\n if (entry instanceof FileHandle) {\n throw new DOMException(...MISMATCH)\n } else {\n return entry\n }\n } else {\n if (opts.create) {\n return (this._entries[name] = new FolderHandle(name))\n } else {\n throw new DOMException(...GONE)\n }\n }\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n */\n async getFileHandle (name, opts) {\n const entry = this._entries[name]\n const isFile = entry instanceof FileHandle\n if (entry && isFile) return entry\n if (entry && !isFile) throw new DOMException(...MISMATCH)\n if (!entry && !opts.create) throw new DOMException(...GONE)\n if (!entry && opts.create) {\n return (this._entries[name] = new FileHandle(name))\n }\n }\n\n async removeEntry (name, opts) {\n const entry = this._entries[name]\n if (!entry) throw new DOMException(...GONE)\n await entry._destroy(opts.recursive)\n delete this._entries[name]\n }\n\n async _destroy (recursive) {\n for (let x of Object.values(this._entries)) {\n if (!recursive) throw new DOMException(...MOD_ERR)\n await x._destroy(recursive)\n }\n this._entries = {}\n this._deleted = true\n }\n}\n\nconst fs = new FolderHandle('')\n\nexport default () => fs\n", "/* global Blob, DOMException */\n\nimport { errors } from '../util.js'\n\nconst { DISALLOWED } = errors\n\nclass Sink {\n /**\n * @param {FileWriter} writer\n * @param {FileEntry} fileEntry\n */\n constructor (writer, fileEntry) {\n this.writer = writer\n this.fileEntry = fileEntry\n }\n\n /**\n * @param {BlobPart | Object} chunk\n */\n async write (chunk) {\n if (typeof chunk === 'object') {\n if (chunk.type === 'write') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.writer.seek(chunk.position)\n if (this.writer.position !== chunk.position) {\n await new Promise((resolve, reject) => {\n this.writer.onwriteend = resolve\n this.writer.onerror = reject\n this.writer.truncate(chunk.position)\n })\n this.writer.seek(chunk.position)\n }\n }\n if (!('data' in chunk)) {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. write requires a data argument', 'SyntaxError')\n }\n chunk = chunk.data\n } else if (chunk.type === 'seek') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.writer.seek(chunk.position)\n if (this.writer.position !== chunk.position) {\n throw new DOMException('seeking position failed', 'InvalidStateError')\n }\n return\n } else {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. seek requires a position argument', 'SyntaxError')\n }\n } else if (chunk.type === 'truncate') {\n return new Promise(resolve => {\n if (Number.isInteger(chunk.size) && chunk.size >= 0) {\n this.writer.onwriteend = evt => resolve()\n this.writer.truncate(chunk.size)\n } else {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. truncate requires a size argument', 'SyntaxError')\n }\n })\n }\n }\n await new Promise((resolve, reject) => {\n this.writer.onwriteend = resolve\n this.writer.onerror = reject\n this.writer.write(new Blob([chunk]))\n })\n }\n\n close () {\n return new Promise(this.fileEntry.file.bind(this.fileEntry))\n }\n}\n\nexport class FileHandle {\n /** @param {FileEntry} file */\n constructor (file, writable = true) {\n this.file = file\n this.kind = 'file'\n this.writable = writable\n this.readable = true\n }\n\n get name () {\n return this.file.name\n }\n\n /**\n * @param {{ file: { toURL: () => string; }; }} other\n */\n isSameEntry (other) {\n return this.file.toURL() === other.file.toURL()\n }\n\n /** @return {Promise} */\n getFile () {\n return new Promise(this.file.file.bind(this.file))\n }\n\n /** @return {Promise} */\n createWritable (opts) {\n if (!this.writable) throw new DOMException(...DISALLOWED)\n\n return new Promise((resolve, reject) =>\n this.file.createWriter(fileWriter => {\n if (opts.keepExistingData === false) {\n fileWriter.onwriteend = evt => resolve(new Sink(fileWriter, this.file))\n fileWriter.truncate(0)\n } else {\n resolve(new Sink(fileWriter, this.file))\n }\n }, reject)\n )\n }\n}\n\nexport class FolderHandle {\n /** @param {DirectoryEntry} dir */\n constructor (dir, writable = true) {\n this.dir = dir\n this.writable = writable\n this.readable = true\n this.kind = 'directory'\n this.name = dir.name\n }\n\n /** @param {FolderHandle} other */\n isSameEntry (other) {\n return this.dir.fullPath === other.dir.fullPath\n }\n\n /** @returns {AsyncGenerator<[string, FileHandle | FolderHandle]>} */\n async * entries () {\n const reader = this.dir.createReader()\n const entries = await new Promise(reader.readEntries.bind(reader))\n for (const x of entries) {\n yield [x.name, x.isFile ? new FileHandle(x, this.writable) : new FolderHandle(x, this.writable)]\n }\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n * @returns {Promise}\n */\n getDirectoryHandle (name, opts) {\n return new Promise((resolve, reject) => {\n this.dir.getDirectory(name, opts, dir => {\n resolve(new FolderHandle(dir))\n }, reject)\n })\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n * @returns {Promise}\n */\n getFileHandle (name, opts) {\n return new Promise((resolve, reject) =>\n this.dir.getFile(name, opts, file => resolve(new FileHandle(file)), reject)\n )\n }\n\n /**\n * @param {string} name\n * @param {{ recursive: boolean; }} opts\n */\n async removeEntry (name, opts) {\n /** @type {Error|FolderHandle|FileHandle} */\n const entry = await this.getDirectoryHandle(name, { create: false }).catch(err =>\n err.name === 'TypeMismatchError' ? this.getFileHandle(name, { create: false }) : err\n )\n\n if (entry instanceof Error) throw entry\n\n return new Promise((resolve, reject) => {\n if (entry instanceof FolderHandle) {\n opts.recursive\n ? entry.dir.removeRecursively(() => resolve(), reject)\n : entry.dir.remove(() => resolve(), reject)\n } else if (entry.file) {\n entry.file.remove(() => resolve(), reject)\n }\n })\n }\n}\n\nexport default (opts = {}) => new Promise((resolve, reject) =>\n window.webkitRequestFileSystem(\n opts._persistent, 0,\n e => resolve(new FolderHandle(e.root)),\n reject\n )\n)\n", "const kAdapter = Symbol('adapter')\n\nclass FileSystemHandle {\n /** @type {FileSystemHandle} */\n [kAdapter]\n\n /** @type {string} */\n name\n /** @type {('file'|'directory')} */\n kind\n\n /** @param {FileSystemHandle & {writable}} adapter */\n constructor (adapter) {\n this.kind = adapter.kind\n this.name = adapter.name\n this[kAdapter] = adapter\n }\n\n async queryPermission ({mode = 'read'} = {}) {\n const handle = this[kAdapter]\n\n if (handle.queryPermission) {\n return handle.queryPermission({mode})\n }\n\n if (mode === 'read') {\n return 'granted'\n } else if (mode === 'readwrite') {\n return handle.writable ? 'granted' : 'denied'\n } else {\n throw new TypeError(`Mode ${mode} must be 'read' or 'readwrite'`)\n }\n }\n\n async requestPermission ({mode = 'read'} = {}) {\n const handle = this[kAdapter]\n if (handle.requestPermission) {\n return handle.requestPermission({mode})\n }\n\n if (mode === 'read') {\n return 'granted'\n } else if (mode === 'readwrite') {\n return handle.writable ? 'granted' : 'denied'\n } else {\n throw new TypeError(`Mode ${mode} must be 'read' or 'readwrite'`)\n }\n }\n\n /**\n * Attempts to remove the entry represented by handle from the underlying file system.\n *\n * @param {object} options\n * @param {boolean} [options.recursive=false]\n */\n async remove (options = {}) {\n await this[kAdapter].remove(options)\n }\n\n /**\n * @param {FileSystemHandle} other\n */\n async isSameEntry (other) {\n if (this === other) return true\n if (\n (!other) ||\n (typeof other !== 'object') ||\n (this.kind !== other.kind) ||\n (!other[kAdapter])\n ) return false\n return this[kAdapter].isSameEntry(other[kAdapter])\n }\n}\n\nObject.defineProperty(FileSystemHandle.prototype, Symbol.toStringTag, {\n value: 'FileSystemHandle',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nexport default FileSystemHandle\nexport { FileSystemHandle }\n", "import config from './config.js'\n\nconst { WritableStream } = config\n\nclass FileSystemWritableFileStream extends WritableStream {\n constructor (...args) {\n super(...args)\n\n // Stupid Safari hack to extend native classes\n // https://bugs.webkit.org/show_bug.cgi?id=226201\n Object.setPrototypeOf(this, FileSystemWritableFileStream.prototype)\n\n /** @private */\n this._closed = false\n }\n\n close () {\n this._closed = true\n const w = this.getWriter()\n const p = w.close()\n w.releaseLock()\n return p\n // return super.close ? super.close() : this.getWriter().close()\n }\n\n /** @param {number} position */\n seek (position) {\n return this.write({ type: 'seek', position })\n }\n\n /** @param {number} size */\n truncate (size) {\n return this.write({ type: 'truncate', size })\n }\n\n write (data) {\n if (this._closed) {\n return Promise.reject(new TypeError('Cannot write to a CLOSED writable stream'))\n }\n\n const writer = this.getWriter()\n const p = writer.write(data)\n writer.releaseLock()\n return p\n }\n}\n\nObject.defineProperty(FileSystemWritableFileStream.prototype, Symbol.toStringTag, {\n value: 'FileSystemWritableFileStream',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nObject.defineProperties(FileSystemWritableFileStream.prototype, {\n close: { enumerable: true },\n seek: { enumerable: true },\n truncate: { enumerable: true },\n write: { enumerable: true }\n})\n\nexport default FileSystemWritableFileStream\nexport { FileSystemWritableFileStream }\n", "import FileSystemHandle from './FileSystemHandle.js'\nimport FileSystemWritableFileStream from './FileSystemWritableFileStream.js'\n\nconst kAdapter = Symbol('adapter')\n\nclass FileSystemFileHandle extends FileSystemHandle {\n /** @type {FileSystemFileHandle} */\n [kAdapter]\n\n constructor (adapter) {\n super(adapter)\n this[kAdapter] = adapter\n }\n\n /**\n * @param {Object} [options={}]\n * @param {boolean} [options.keepExistingData]\n * @returns {Promise}\n */\n async createWritable (options = {}) {\n return new FileSystemWritableFileStream(\n await this[kAdapter].createWritable(options)\n )\n }\n\n /**\n * @returns {Promise}\n */\n async getFile () {\n return this[kAdapter].getFile()\n }\n}\n\nObject.defineProperty(FileSystemFileHandle.prototype, Symbol.toStringTag, {\n value: 'FileSystemFileHandle',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nObject.defineProperties(FileSystemFileHandle.prototype, {\n createWritable: { enumerable: true },\n getFile: { enumerable: true }\n})\n\nexport default FileSystemFileHandle\nexport { FileSystemFileHandle }\n", "import FileSystemHandle from './FileSystemHandle.js'\n\nconst kAdapter = Symbol('adapter')\n\nclass FileSystemDirectoryHandle extends FileSystemHandle {\n /** @type {FileSystemDirectoryHandle} */\n [kAdapter]\n\n constructor (adapter) {\n super(adapter)\n this[kAdapter] = adapter\n }\n\n /**\n * @param {string} name Name of the directory\n * @param {object} [options]\n * @param {boolean} [options.create] create the directory if don't exist\n * @returns {Promise}\n */\n async getDirectoryHandle (name, options = {}) {\n if (name === '') {\n throw new TypeError(`Name can't be an empty string.`)\n }\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.create = !!options.create\n const handle = await this[kAdapter].getDirectoryHandle(name, options)\n return new FileSystemDirectoryHandle(handle)\n }\n\n /** @returns {AsyncGenerator<[string, FileSystemHandle | FileSystemDirectoryHandle]>} */\n async * entries () {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n\n for await (const [_, entry] of this[kAdapter].entries())\n yield [entry.name, entry.kind === 'file'\n ? new FileSystemFileHandle(entry)\n : new FileSystemDirectoryHandle(entry)]\n }\n\n /** @deprecated use .entries() instead */\n async * getEntries() {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n console.warn('deprecated, use .entries() instead')\n for await (let entry of this[kAdapter].entries())\n yield entry.kind === 'file'\n ? new FileSystemFileHandle(entry)\n : new FileSystemDirectoryHandle(entry)\n }\n\n /**\n * @param {string} name Name of the file\n * @param {object} [options]\n * @param {boolean} [options.create] create the file if don't exist\n */\n async getFileHandle (name, options = {}) {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n if (name === '') throw new TypeError(`Name can't be an empty string.`)\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.create = !!options.create\n const handle = await this[kAdapter].getFileHandle(name, options)\n return new FileSystemFileHandle(handle)\n }\n\n /**\n * @param {string} name\n * @param {object} [options]\n * @param {boolean} [options.recursive]\n */\n async removeEntry (name, options = {}) {\n if (name === '') {\n throw new TypeError(`Name can't be an empty string.`)\n }\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.recursive = !!options.recursive // cuz node's fs.rm require boolean\n return this[kAdapter].removeEntry(name, options)\n }\n\n async resolve (possibleDescendant) {\n if (await possibleDescendant.isSameEntry(this)) {\n return []\n }\n\n const openSet = [{ handle: this, path: [] }]\n\n while (openSet.length) {\n let { handle: current, path } = openSet.pop()\n for await (const entry of current.values()) {\n if (await entry.isSameEntry(possibleDescendant)) {\n return [...path, entry.name]\n }\n if (entry.kind === 'directory') {\n openSet.push({ handle: entry, path: [...path, entry.name] })\n }\n }\n }\n\n return null\n }\n\n async * keys () {\n for await (const [name] of this[kAdapter].entries())\n yield name\n }\n\n async * values () {\n for await (const [_, entry] of this)\n yield entry\n }\n\n [Symbol.asyncIterator]() {\n return this.entries()\n }\n}\n\nObject.defineProperty(FileSystemDirectoryHandle.prototype, Symbol.toStringTag, {\n\tvalue: 'FileSystemDirectoryHandle',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n})\n\nObject.defineProperties(FileSystemDirectoryHandle.prototype, {\n\tgetDirectoryHandle: { enumerable: true },\n\tentries: { enumerable: true },\n\tgetFileHandle: { enumerable: true },\n\tremoveEntry: { enumerable: true }\n})\n\nexport default FileSystemDirectoryHandle\nexport { FileSystemDirectoryHandle }\n", "export const errors = {\n INVALID: ['seeking position failed.', 'InvalidStateError'],\n GONE: ['A requested file or directory could not be found at the time an operation was processed.', 'NotFoundError'],\n MISMATCH: ['The path supplied exists, but was not an entry of requested type.', 'TypeMismatchError'],\n MOD_ERR: ['The object can not be modified in this way.', 'InvalidModificationError'],\n SYNTAX: m => [`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${m}`, 'SyntaxError'],\n SECURITY: ['It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.', 'SecurityError'],\n DISALLOWED: ['The request is not allowed by the user agent or the platform in the current context.', 'NotAllowedError']\n}\n\nexport const config = {\n writable: globalThis.WritableStream\n}\n\nexport async function fromDataTransfer (entries) {\n console.warn('deprecated fromDataTransfer - use `dt.items[0].getAsFileSystemHandle()` instead')\n const [memory, sandbox, fs] = await Promise.all([\n import('./adapters/memory.js'),\n import('./adapters/sandbox.js'),\n import('./FileSystemDirectoryHandle.js')\n ])\n\n const folder = new memory.FolderHandle('', false)\n folder._entries = entries.map(entry => entry.isFile\n ? new sandbox.FileHandle(entry, false)\n : new sandbox.FolderHandle(entry, false)\n )\n\n return new fs.FileSystemDirectoryHandle(folder)\n}\n\nexport async function getDirHandlesFromInput (input) {\n const { FolderHandle, FileHandle } = await import('./adapters/memory.js')\n const { FileSystemDirectoryHandle } = await import('./FileSystemDirectoryHandle.js')\n\n const files = Array.from(input.files)\n const rootName = files[0].webkitRelativePath.split('/', 1)[0]\n const root = new FolderHandle(rootName, false)\n\n files.forEach(file => {\n const path = file.webkitRelativePath.split('/')\n path.shift()\n const name = path.pop()\n\n const dir = path.reduce((dir, path) => {\n if (!dir._entries[path]) dir._entries[path] = new FolderHandle(path, false)\n return dir._entries[path]\n }, root)\n\n dir._entries[name] = new FileHandle(file.name, file, false)\n })\n\n return new FileSystemDirectoryHandle(root)\n}\n\nexport async function getFileHandlesFromInput (input) {\n const { FileHandle } = await import('./adapters/memory.js')\n const { FileSystemFileHandle } = await import('./FileSystemFileHandle.js')\n\n return Array.from(input.files).map(file =>\n new FileSystemFileHandle(new FileHandle(file.name, file, false))\n )\n}\n", "import { errors } from '../util.js'\nimport config from '../config.js'\n\nconst {\n WritableStream,\n TransformStream,\n DOMException,\n Blob\n} = config\n\nconst { GONE } = errors\n// @ts-ignore\nconst isSafari = /constructor/i.test(window.HTMLElement) || window.safari || window.WebKitPoint\n\nexport class FileHandle {\n constructor (name = 'unkown') {\n this.name = name\n this.kind = 'file'\n }\n\n async getFile () {\n throw new DOMException(...GONE)\n }\n\n async isSameEntry(other) {\n return this === other\n }\n\n /**\n * @param {object} [options={}]\n */\n async createWritable (options = {}) {\n const sw = await navigator.serviceWorker?.getRegistration()\n const link = document.createElement('a')\n const ts = new TransformStream()\n const sink = ts.writable\n\n link.download = this.name\n\n if (isSafari || !sw) {\n /** @type {Blob[]} */\n let chunks = []\n ts.readable.pipeTo(new WritableStream({\n write (chunk) {\n chunks.push(new Blob([chunk]))\n },\n close () {\n const blob = new Blob(chunks, { type: 'application/octet-stream; charset=utf-8' })\n chunks = []\n link.href = URL.createObjectURL(blob)\n link.click()\n setTimeout(() => URL.revokeObjectURL(link.href), 10000)\n }\n }))\n } else {\n const { writable, readablePort } = new RemoteWritableStream(WritableStream)\n // Make filename RFC5987 compatible\n const fileName = encodeURIComponent(this.name).replace(/['()]/g, escape).replace(/\\*/g, '%2A')\n const headers = {\n 'content-disposition': \"attachment; filename*=UTF-8''\" + fileName,\n 'content-type': 'application/octet-stream; charset=utf-8',\n ...(options.size ? { 'content-length': options.size } : {})\n }\n\n const keepAlive = setTimeout(() => sw.active.postMessage(0), 10000)\n\n ts.readable.pipeThrough(new TransformStream({\n transform (chunk, ctrl) {\n if (chunk instanceof Uint8Array) return ctrl.enqueue(chunk)\n const reader = new Response(chunk).body.getReader()\n const pump = _ => reader.read().then(e => e.done ? 0 : pump(ctrl.enqueue(e.value)))\n return pump()\n }\n })).pipeTo(writable).finally(() => {\n clearInterval(keepAlive)\n })\n\n // Transfer the stream to service worker\n sw.active.postMessage({\n url: sw.scope + fileName,\n headers,\n readablePort\n }, [readablePort])\n\n // Trigger the download with a hidden iframe\n const iframe = document.createElement('iframe')\n iframe.hidden = true\n iframe.src = sw.scope + fileName\n document.body.appendChild(iframe)\n }\n\n return sink.getWriter()\n }\n}\n\nconst WRITE = 0\nconst PULL = 0\nconst ERROR = 1\nconst ABORT = 1\nconst CLOSE = 2\n\nclass MessagePortSink {\n /** @param {MessagePort} port */\n constructor (port) {\n port.onmessage = event => this._onMessage(event.data)\n this._port = port\n this._resetReady()\n }\n\n start (controller) {\n this._controller = controller\n // Apply initial backpressure\n return this._readyPromise\n }\n\n write (chunk) {\n const message = { type: WRITE, chunk }\n\n // Send chunk\n this._port.postMessage(message, [chunk.buffer])\n\n // Assume backpressure after every write, until sender pulls\n this._resetReady()\n\n // Apply backpressure\n return this._readyPromise\n }\n\n close () {\n this._port.postMessage({ type: CLOSE })\n this._port.close()\n }\n\n abort (reason) {\n this._port.postMessage({ type: ABORT, reason })\n this._port.close()\n }\n\n _onMessage (message) {\n if (message.type === PULL) this._resolveReady()\n if (message.type === ERROR) this._onError(message.reason)\n }\n\n _onError (reason) {\n this._controller.error(reason)\n this._rejectReady(reason)\n this._port.close()\n }\n\n _resetReady () {\n this._readyPromise = new Promise((resolve, reject) => {\n this._readyResolve = resolve\n this._readyReject = reject\n })\n this._readyPending = true\n }\n\n _resolveReady () {\n this._readyResolve()\n this._readyPending = false\n }\n\n _rejectReady (reason) {\n if (!this._readyPending) this._resetReady()\n this._readyPromise.catch(() => {})\n this._readyReject(reason)\n this._readyPending = false\n }\n}\n\nclass RemoteWritableStream {\n constructor (WritableStream) {\n const channel = new MessageChannel()\n this.readablePort = channel.port1\n this.writable = new WritableStream(\n new MessagePortSink(channel.port2)\n )\n }\n}\n", "class InnerDbConnection {\r\n constructor(private readonly database: IDBDatabase) { }\r\n\r\n private openStore(store: string, mode: IDBTransactionMode): IDBObjectStore {\r\n const tx = this.database.transaction(store, mode);\r\n return tx.objectStore(store);\r\n }\r\n\r\n public async put(store: string, obj: any, key?: IDBValidKey): Promise {\r\n const os = this.openStore(store, \"readwrite\");\r\n\r\n return await new Promise((resolve, reject) => {\r\n const response = os.put(obj, key);\r\n response.onsuccess = () => {\r\n resolve(response.result);\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public get(store: string, key: IDBValidKey): any {\r\n const os = this.openStore(store, \"readonly\");\r\n\r\n return new Promise((resolve, reject) => {\r\n const response = os.get(key);\r\n response.onsuccess = () => {\r\n resolve(response.result);\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public async delete(store: string, key: IDBValidKey): Promise {\r\n const os = this.openStore(store, \"readwrite\");\r\n\r\n return await new Promise((resolve, reject) => {\r\n const response = os.delete(key);\r\n response.onsuccess = () => {\r\n resolve();\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public close() {\r\n this.database.close();\r\n }\r\n}\r\n\r\nclass IndexedDbWrapper {\r\n constructor(private readonly databaseName: string, private readonly objectStores: [string]) {\r\n }\r\n\r\n public async connect(): Promise {\r\n const conn = window.indexedDB.open(this.databaseName, 1);\r\n\r\n conn.onupgradeneeded = event => {\r\n const db = (event.target as IDBRequest).result;\r\n this.objectStores.forEach(store => {\r\n db.createObjectStore(store);\r\n });\r\n };\r\n\r\n return await new Promise((resolve, reject) => {\r\n conn.onsuccess = event => {\r\n resolve(new InnerDbConnection((event.target as IDBRequest).result));\r\n };\r\n conn.onerror = event => {\r\n reject((event.target as IDBRequest).error);\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport const fileBookmarksStore: string = \"fileBookmarks\";\r\nexport const avaloniaDb = new IndexedDbWrapper(\"AvaloniaDb\", [\r\n fileBookmarksStore\r\n]);\r\n", "// Based on https://github.com/component/textarea-caret-position/blob/master/index.js\r\nexport class CaretHelper {\r\n public static getCaretCoordinates(\r\n element: HTMLInputElement | HTMLTextAreaElement,\r\n position: number,\r\n options?: { debug: boolean }\r\n ) {\r\n if (!isBrowser) {\r\n throw new Error(\r\n \"textarea-caret-position#getCaretCoordinates should only be called in a browser\"\r\n );\r\n }\r\n\r\n const debug = options?.debug ?? false;\r\n if (debug) {\r\n const el = document.querySelector(\r\n \"#input-textarea-caret-position-mirror-div\"\r\n );\r\n if (el) el.parentNode?.removeChild(el);\r\n }\r\n\r\n // The mirror div will replicate the textarea's style\r\n const div = document.createElement(\"div\");\r\n div.id = \"input-textarea-caret-position-mirror-div\";\r\n document.body.appendChild(div);\r\n\r\n const style = div.style;\r\n const computed = window.getComputedStyle\r\n ? window.getComputedStyle(element)\r\n : ((element as any).currentStyle as CSSStyleDeclaration); // currentStyle for IE < 9\r\n const isInput = element.nodeName === \"INPUT\";\r\n\r\n // Default textarea styles\r\n style.whiteSpace = \"pre-wrap\";\r\n if (!isInput) style.wordWrap = \"break-word\"; // only for textarea-s\r\n\r\n // Position off-screen\r\n style.position = \"absolute\"; // required to return coordinates properly\r\n if (!debug) style.visibility = \"hidden\"; // not 'display: none' because we want rendering\r\n\r\n // Transfer the element's properties to the div\r\n properties.forEach((prop: string) => {\r\n if (isInput && prop === \"lineHeight\") {\r\n // Special case for s because text is rendered centered and line height may be != height\r\n if (computed.boxSizing === \"border-box\") {\r\n const height = parseInt(computed.height);\r\n const outerHeight =\r\n parseInt(computed.paddingTop) +\r\n parseInt(computed.paddingBottom) +\r\n parseInt(computed.borderTopWidth) +\r\n parseInt(computed.borderBottomWidth);\r\n const targetHeight = outerHeight + parseInt(computed.lineHeight);\r\n if (height > targetHeight) {\r\n style.lineHeight = `${height - outerHeight}px`;\r\n } else if (height === targetHeight) {\r\n style.lineHeight = computed.lineHeight;\r\n } else {\r\n style.lineHeight = \"0\";\r\n }\r\n } else {\r\n style.lineHeight = computed.height;\r\n }\r\n } else {\r\n (style as any)[prop] = (computed as any)[prop];\r\n }\r\n });\r\n\r\n if (isFirefox) {\r\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\r\n if (element.scrollHeight > parseInt(computed.height)) {\r\n style.overflowY = \"scroll\";\r\n }\r\n } else {\r\n style.overflow = \"hidden\"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\r\n }\r\n\r\n div.textContent = element.value.substring(0, position);\r\n // The second special handling for input type=\"text\" vs textarea:\r\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\r\n if (isInput) div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\r\n\r\n const span = document.createElement(\"span\");\r\n // Wrapping must be replicated *exactly*, including when a long word gets\r\n // onto the next line, with whitespace at the end of the line before (#7).\r\n // The *only* reliable way to do that is to copy the *entire* rest of the\r\n // textarea's content into the created at the caret position.\r\n // For inputs, just '.' would be enough, but no need to bother.\r\n span.textContent = element.value.substring(position) || \".\"; // || because a completely empty faux span doesn't render at all\r\n div.appendChild(span);\r\n\r\n const coordinates = {\r\n top: span.offsetTop + parseInt(computed.borderTopWidth),\r\n left: span.offsetLeft + parseInt(computed.borderLeftWidth),\r\n height: parseInt(computed.lineHeight)\r\n };\r\n\r\n if (debug) {\r\n span.style.backgroundColor = \"#aaa\";\r\n } else {\r\n document.body.removeChild(div);\r\n }\r\n\r\n return coordinates;\r\n }\r\n}\r\n\r\nconst properties = [\r\n \"direction\", // RTL support\r\n \"boxSizing\",\r\n \"width\", // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\r\n \"height\",\r\n \"overflowX\",\r\n \"overflowY\", // copy the scrollbar for IE\r\n\r\n \"borderTopWidth\",\r\n \"borderRightWidth\",\r\n \"borderBottomWidth\",\r\n \"borderLeftWidth\",\r\n \"borderStyle\",\r\n\r\n \"paddingTop\",\r\n \"paddingRight\",\r\n \"paddingBottom\",\r\n \"paddingLeft\",\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n \"fontStyle\",\r\n \"fontVariant\",\r\n \"fontWeight\",\r\n \"fontStretch\",\r\n \"fontSize\",\r\n \"fontSizeAdjust\",\r\n \"lineHeight\",\r\n \"fontFamily\",\r\n\r\n \"textAlign\",\r\n \"textTransform\",\r\n \"textIndent\",\r\n \"textDecoration\", // might not make a difference, but better be safe\r\n\r\n \"letterSpacing\",\r\n \"wordSpacing\",\r\n\r\n \"tabSize\",\r\n \"MozTabSize\"\r\n];\r\n\r\nconst isBrowser = typeof window !== \"undefined\";\r\nconst isFirefox = isBrowser && (window as any).mozInnerScreenX != null;\r\n", "import { CaretHelper } from \"./caretHelper\";\r\n\r\nenum RawInputModifiers {\r\n None = 0,\r\n Alt = 1,\r\n Control = 2,\r\n Shift = 4,\r\n Meta = 8,\r\n\r\n LeftMouseButton = 16,\r\n RightMouseButton = 32,\r\n MiddleMouseButton = 64,\r\n XButton1MouseButton = 128,\r\n XButton2MouseButton = 256,\r\n KeyboardMask = Alt | Control | Shift | Meta,\r\n\r\n PenInverted = 512,\r\n PenEraser = 1024,\r\n PenBarrelButton = 2048\r\n}\r\n\r\n/*\r\n* This is a hack to handle Mozilla clipboard events in a more convinient way for framework users.\r\n* In the browser, events go in order KeyDown -> Paste -> KeyUp.\r\n* On KeyDown we trigger Avalonia handlers, which might execute readClipboardText.\r\n* When readClipboardText was executed, we mark ClipboardState as Pending and setup clipboard promise,\r\n* which will un-handle KeyDown event, basically allowing browser to pass a Paste event properly.\r\n* On actual Paste event we execute promise callbacks, resuming async operation, and returning pasted text to the app.\r\n* Note #1, on every KeyUp event we will reset all the state and reject pending promises if any, as this event it expected to come after Paste.\r\n* Note #2, whole this code will be executed only on legacy browsers like Mozilla, where clipboard.readText is not available.\r\n* Note #3, with all of these hacks Clipboard.ReadText will still work only on actual \"paste\" gesture initiated by user.\r\n* */\r\nenum ClipboardState {\r\n None,\r\n Ready,\r\n Pending\r\n}\r\n\r\nexport class InputHelper {\r\n static clipboardState: ClipboardState = ClipboardState.None;\r\n static resolveClipboard?: any;\r\n static rejectClipboard?: any;\r\n\r\n public static initializeBackgroundHandlers() {\r\n if (this.clipboardState !== ClipboardState.None) {\r\n return;\r\n }\r\n\r\n globalThis.addEventListener(\"paste\", (args: any) => {\r\n if (this.clipboardState === ClipboardState.Pending) {\r\n this.resolveClipboard(args.clipboardData.getData(\"text\"));\r\n }\r\n });\r\n this.clipboardState = ClipboardState.Ready;\r\n }\r\n\r\n public static async readClipboardText(): Promise {\r\n if (globalThis.navigator.clipboard.readText) {\r\n return await globalThis.navigator.clipboard.readText();\r\n } else {\r\n try {\r\n return await new Promise((resolve, reject) => {\r\n this.clipboardState = ClipboardState.Pending;\r\n this.resolveClipboard = resolve;\r\n this.rejectClipboard = reject;\r\n });\r\n } finally {\r\n this.clipboardState = ClipboardState.Ready;\r\n this.resolveClipboard = null;\r\n this.rejectClipboard = null;\r\n }\r\n }\r\n }\r\n\r\n public static subscribeKeyEvents(\r\n element: HTMLInputElement,\r\n keyDownCallback: (code: string, key: string, modifiers: RawInputModifiers) => boolean,\r\n keyUpCallback: (code: string, key: string, modifiers: RawInputModifiers) => boolean) {\r\n const keyDownHandler = (args: KeyboardEvent) => {\r\n if (keyDownCallback(args.code, args.key, this.getModifiers(args))) {\r\n if (this.clipboardState !== ClipboardState.Pending) {\r\n args.preventDefault();\r\n }\r\n }\r\n };\r\n element.addEventListener(\"keydown\", keyDownHandler);\r\n\r\n const keyUpHandler = (args: KeyboardEvent) => {\r\n if (keyUpCallback(args.code, args.key, this.getModifiers(args))) {\r\n args.preventDefault();\r\n }\r\n if (this.rejectClipboard) {\r\n this.rejectClipboard();\r\n }\r\n };\r\n\r\n element.addEventListener(\"keyup\", keyUpHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"keydown\", keyDownHandler);\r\n element.removeEventListener(\"keyup\", keyUpHandler);\r\n };\r\n }\r\n\r\n public static subscribeTextEvents(\r\n element: HTMLInputElement,\r\n beforeInputCallback: (args: InputEvent, start: number, end: number) => boolean,\r\n compositionStartCallback: (args: CompositionEvent) => boolean,\r\n compositionUpdateCallback: (args: CompositionEvent) => boolean,\r\n compositionEndCallback: (args: CompositionEvent) => boolean) {\r\n const compositionStartHandler = (args: CompositionEvent) => {\r\n if (compositionStartCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionstart\", compositionStartHandler);\r\n\r\n const beforeInputHandler = (args: InputEvent) => {\r\n const ranges = args.getTargetRanges();\r\n let start = -1;\r\n let end = -1;\r\n if (ranges.length > 0) {\r\n start = ranges[0].startOffset;\r\n end = ranges[0].endOffset;\r\n }\r\n\r\n if (args.inputType === \"insertCompositionText\") {\r\n start = 2;\r\n end = start + 2;\r\n }\r\n if (beforeInputCallback(args, start, end)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"beforeinput\", beforeInputHandler);\r\n\r\n const compositionUpdateHandler = (args: CompositionEvent) => {\r\n if (compositionUpdateCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n\r\n const compositionEndHandler = (args: CompositionEvent) => {\r\n if (compositionEndCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionend\", compositionEndHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"compositionstart\", compositionStartHandler);\r\n element.removeEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n element.removeEventListener(\"compositionend\", compositionEndHandler);\r\n };\r\n }\r\n\r\n public static subscribePointerEvents(\r\n element: HTMLInputElement,\r\n pointerMoveCallback: (args: PointerEvent) => boolean,\r\n pointerDownCallback: (args: PointerEvent) => boolean,\r\n pointerUpCallback: (args: PointerEvent) => boolean,\r\n pointerCancelCallback: (args: PointerEvent) => boolean,\r\n wheelCallback: (args: WheelEvent) => boolean\r\n ) {\r\n const pointerMoveHandler = (args: PointerEvent) => {\r\n pointerMoveCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerDownHandler = (args: PointerEvent) => {\r\n pointerDownCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerUpHandler = (args: PointerEvent) => {\r\n pointerUpCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerCancelHandler = (args: PointerEvent) => {\r\n pointerCancelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const wheelHandler = (args: WheelEvent) => {\r\n wheelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n element.addEventListener(\"pointermove\", pointerMoveHandler);\r\n element.addEventListener(\"pointerdown\", pointerDownHandler);\r\n element.addEventListener(\"pointerup\", pointerUpHandler);\r\n element.addEventListener(\"wheel\", wheelHandler);\r\n element.addEventListener(\"pointercancel\", pointerCancelHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"pointerover\", pointerMoveHandler);\r\n element.removeEventListener(\"pointerdown\", pointerDownHandler);\r\n element.removeEventListener(\"pointerup\", pointerUpHandler);\r\n element.removeEventListener(\"pointercancel\", pointerCancelHandler);\r\n element.removeEventListener(\"wheel\", wheelHandler);\r\n };\r\n }\r\n\r\n public static subscribeInputEvents(\r\n element: HTMLInputElement,\r\n inputCallback: (value: string) => boolean\r\n ) {\r\n const inputHandler = (args: Event) => {\r\n if (inputCallback((args as any).value)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"input\", inputHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"input\", inputHandler);\r\n };\r\n }\r\n\r\n public static subscribeDropEvents(\r\n element: HTMLInputElement,\r\n dragEvent: (args: any) => boolean\r\n ) {\r\n const dragHandler = (args: Event) => {\r\n if (dragEvent(args as any)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"dragover\", dragHandler);\r\n element.addEventListener(\"dragenter\", dragHandler);\r\n element.addEventListener(\"dragleave\", dragHandler);\r\n element.addEventListener(\"drop\", dragHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"dragover\", dragHandler);\r\n element.removeEventListener(\"dragenter\", dragHandler);\r\n element.removeEventListener(\"dragleave\", dragHandler);\r\n element.removeEventListener(\"drop\", dragHandler);\r\n };\r\n }\r\n\r\n public static getCoalescedEvents(pointerEvent: PointerEvent): PointerEvent[] {\r\n return pointerEvent.getCoalescedEvents();\r\n }\r\n\r\n public static subscribeKeyboardGeometryChange(\r\n element: HTMLInputElement,\r\n handler: (args: any) => boolean) {\r\n if (\"virtualKeyboard\" in navigator) {\r\n // (navigator as any).virtualKeyboard.overlaysContent = true;\r\n (navigator as any).virtualKeyboard.addEventListener(\"geometrychange\", (event: any) => {\r\n const elementRect = element.getBoundingClientRect();\r\n const keyboardRect = event.target.boundingRect as DOMRect;\r\n handler({\r\n x: keyboardRect.x - elementRect.x,\r\n y: keyboardRect.y - elementRect.y,\r\n width: keyboardRect.width,\r\n height: keyboardRect.height\r\n });\r\n });\r\n }\r\n }\r\n\r\n public static subscribeVisibilityChange(\r\n handler: (state: boolean) => void): boolean {\r\n document.addEventListener(\"visibilitychange\", () => {\r\n handler(document.visibilityState === \"visible\");\r\n });\r\n return document.visibilityState === \"visible\";\r\n }\r\n\r\n public static clearInput(inputElement: HTMLInputElement) {\r\n inputElement.value = \"\";\r\n }\r\n\r\n public static focusElement(inputElement: HTMLElement) {\r\n inputElement.focus();\r\n }\r\n\r\n public static setCursor(inputElement: HTMLInputElement, kind: string) {\r\n if (kind === \"default\") {\r\n inputElement.style.removeProperty(\"cursor\");\r\n } else {\r\n inputElement.style.cursor = kind;\r\n }\r\n }\r\n\r\n public static setBounds(inputElement: HTMLInputElement, x: number, y: number, caretWidth: number, caretHeight: number, caret: number) {\r\n inputElement.style.left = (x).toFixed(0) + \"px\";\r\n inputElement.style.top = (y).toFixed(0) + \"px\";\r\n\r\n const { left, top } = CaretHelper.getCaretCoordinates(inputElement, caret);\r\n\r\n inputElement.style.left = (x - left).toFixed(0) + \"px\";\r\n inputElement.style.top = (y - top).toFixed(0) + \"px\";\r\n }\r\n\r\n public static hide(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"none\";\r\n }\r\n\r\n public static show(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"block\";\r\n }\r\n\r\n public static setSurroundingText(inputElement: HTMLInputElement, text: string, start: number, end: number) {\r\n if (!inputElement) {\r\n return;\r\n }\r\n\r\n inputElement.value = text;\r\n inputElement.setSelectionRange(start, end);\r\n inputElement.style.width = \"20px\";\r\n inputElement.style.width = `${inputElement.scrollWidth}px`;\r\n }\r\n\r\n private static getModifiers(args: KeyboardEvent): RawInputModifiers {\r\n let modifiers = RawInputModifiers.None;\r\n\r\n if (args.ctrlKey) { modifiers |= RawInputModifiers.Control; }\r\n if (args.altKey) { modifiers |= RawInputModifiers.Alt; }\r\n if (args.shiftKey) { modifiers |= RawInputModifiers.Shift; }\r\n if (args.metaKey) { modifiers |= RawInputModifiers.Meta; }\r\n\r\n return modifiers;\r\n }\r\n}\r\n", "export class Caniuse {\r\n public static hasNativeFilePicker(): boolean {\r\n return \"showSaveFilePicker\" in globalThis;\r\n }\r\n\r\n public static isMobile(): boolean {\r\n const userAgentData = (globalThis.navigator as any)?.userAgentData;\r\n if (userAgentData) {\r\n return userAgentData.mobile;\r\n }\r\n\r\n const userAgent = navigator.userAgent;\r\n const regex1 = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;\r\n const regex2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;\r\n return regex1.test(userAgent) || regex2.test(userAgent.substr(0, 4));\r\n }\r\n}\r\n", "import { avaloniaDb, fileBookmarksStore } from \"./indexedDb\";\r\nimport { FileSystemFileHandle, FileSystemDirectoryHandle, FileSystemWritableFileStream } from \"native-file-system-adapter\";\r\nimport { Caniuse } from \"../avalonia\";\r\n\r\nexport class StorageItem {\r\n private constructor(\r\n public handle?: FileSystemFileHandle | FileSystemDirectoryHandle,\r\n private readonly file?: File,\r\n private readonly bookmarkId?: string,\r\n public wellKnownType?: WellKnownDirectory\r\n ) {\r\n }\r\n\r\n public get name(): string {\r\n if (this.handle) {\r\n return this.handle.name;\r\n }\r\n if (this.file) {\r\n return this.file.name;\r\n }\r\n return this.wellKnownType ?? \"\";\r\n }\r\n\r\n public get kind(): \"file\" | \"directory\" {\r\n if (this.handle) {\r\n return this.handle.kind;\r\n }\r\n if (this.file) {\r\n return \"file\";\r\n }\r\n return \"directory\";\r\n }\r\n\r\n public static createFromHandle(handle: FileSystemFileHandle | FileSystemDirectoryHandle, bookmarkId?: string) {\r\n return new StorageItem(handle, undefined, bookmarkId, undefined);\r\n }\r\n\r\n public static createFromFile(file: File) {\r\n return new StorageItem(undefined, file, undefined, undefined);\r\n }\r\n\r\n public static createWellKnownDirectory(type: WellKnownDirectory) {\r\n return new StorageItem(undefined, undefined, undefined, type);\r\n }\r\n\r\n public static async openRead(item: StorageItem): Promise {\r\n if (item.file) {\r\n return item.file;\r\n }\r\n\r\n if (!item.handle || item.kind !== \"file\") {\r\n throw new Error(\"StorageItem is not a file\");\r\n }\r\n\r\n await item.verityPermissions(\"read\");\r\n\r\n const file = await (item.handle as FileSystemFileHandle).getFile();\r\n return file;\r\n }\r\n\r\n public static async openWrite(item: StorageItem): Promise {\r\n if (!item.handle || item.kind !== \"file\") {\r\n throw new Error(\"StorageItem is not a writeable file\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await (item.handle as FileSystemFileHandle).createWritable({ keepExistingData: true });\r\n }\r\n\r\n public static async getProperties(item: StorageItem): Promise<{ Size: number; LastModified: number; Type: string } | null> {\r\n // getFile can fail with an exception depending if we use polyfill with a save file dialog or not.\r\n try {\r\n const file = item.handle && \"getFile\" in item.handle\r\n ? await item.handle.getFile()\r\n : item.file;\r\n\r\n if (!file) {\r\n return null;\r\n }\r\n\r\n return {\r\n Size: file.size,\r\n LastModified: file.lastModified,\r\n Type: file.type\r\n };\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n public static getItemsIterator(item: StorageItem): any | null {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n return null;\r\n }\r\n\r\n return (item.handle as any).entries();\r\n }\r\n\r\n public static async createFile(item: StorageItem, name: string): Promise {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n throw new TypeError(\"Unable to create item in the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).getFileHandle(name, { create: true }) as Promise);\r\n }\r\n\r\n public static async createFolder(item: StorageItem, name: string): Promise {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n throw new TypeError(\"Unable to create item in the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).getDirectoryHandle(name, { create: true }) as Promise);\r\n }\r\n\r\n public static async deleteAsync(item: StorageItem): Promise {\r\n if (!item.handle) {\r\n return null;\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).remove({ recursive: true }) as Promise);\r\n }\r\n\r\n public static async moveAsync(item: StorageItem, destination: StorageItem): Promise {\r\n if (!item.handle) {\r\n return null;\r\n }\r\n if (destination.kind !== \"directory\" || !destination.handle) {\r\n throw new TypeError(\"Unable to move item to the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).move(destination /*, newName */) as Promise);\r\n }\r\n\r\n private async verityPermissions(mode: \"read\" | \"readwrite\"): Promise {\r\n if (!this.handle) {\r\n return;\r\n }\r\n\r\n // If we are using polyfill, let it decide permissions by itself, we can't request anything in this case.\r\n if (!Caniuse.hasNativeFilePicker()) {\r\n return;\r\n }\r\n\r\n if (await this.handle.queryPermission({ mode }) === \"granted\") {\r\n return;\r\n }\r\n\r\n if (await this.handle.requestPermission({ mode }) === \"denied\") {\r\n throw new Error(\"Permissions denied\");\r\n }\r\n }\r\n\r\n public static async saveBookmark(item: StorageItem): Promise {\r\n // If file was previously bookmarked, just return old one.\r\n if (item.bookmarkId) {\r\n return item.bookmarkId;\r\n }\r\n\r\n // Bookmarks are not supported with polyfill.\r\n if (!item.handle || !Caniuse.hasNativeFilePicker()) {\r\n return null;\r\n }\r\n\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n const key = await connection.put(fileBookmarksStore, item.handle, item.generateBookmarkId());\r\n return key as string;\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n public static async deleteBookmark(item: StorageItem): Promise {\r\n if (!item.bookmarkId || !Caniuse.hasNativeFilePicker()) {\r\n return;\r\n }\r\n\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n await connection.delete(fileBookmarksStore, item.bookmarkId);\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n private generateBookmarkId(): string {\r\n return Date.now().toString(36) + Math.random().toString(36).substring(2);\r\n }\r\n}\r\n\r\nexport class StorageItems {\r\n constructor(private readonly items: StorageItem[]) { }\r\n\r\n public static itemsArray(instance: StorageItems): StorageItem[] {\r\n return instance.items;\r\n }\r\n\r\n public static filesToItemsArray(files: File[]): StorageItem[] {\r\n if (!files) {\r\n return [];\r\n }\r\n\r\n const retItems = [];\r\n for (let i = 0; i < files.length; i++) {\r\n retItems[i] = StorageItem.createFromFile(files[i]);\r\n }\r\n return retItems;\r\n }\r\n}\r\n", "/** @typedef {import('./FileSystemDirectoryHandle.js').default} FileSystemDirectoryHandle */\n\nconst native = globalThis.showDirectoryPicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @returns {Promise}\n */\nasync function showDirectoryPicker (options = {}) {\n if (native && !options._preferPolyfill) {\n return native(options)\n }\n\n const input = document.createElement('input')\n input.type = 'file'\n\n // Even with this check, the browser may support the attribute, but not the functionality (e.g. iOS Safari)\n if (!('webkitdirectory' in input)) {\n throw new Error(`HTMLInputElement.webkitdirectory is not supported`)\n }\n\n // See https://stackoverflow.com/questions/47664777/javascript-file-input-onchange-not-working-ios-safari-only\n input.style.position = 'fixed'\n input.style.top = '-100000px'\n input.style.left = '-100000px'\n document.body.appendChild(input)\n\n input.webkitdirectory = true\n\n // Lazy load while the user is choosing the directory\n const p = import('./util.js')\n\n await new Promise(resolve => {\n input.addEventListener('change', resolve)\n input.click()\n })\n\n return p.then(mod => mod.getDirHandlesFromInput(input))\n}\n\nexport default showDirectoryPicker\nexport { showDirectoryPicker }\n", "/** @typedef {import('./FileSystemFileHandle.js').default} FileSystemFileHandle */\n\nconst def = { accepts: [] }\nconst native = globalThis.showOpenFilePicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options.multiple] If you want to allow more than one file\n * @param {boolean} [options.excludeAcceptAllOption=false] Prevent user for selecting any\n * @param {Object[]} [options.accepts] Files you want to accept\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @returns {Promise}\n */\nasync function showOpenFilePicker (options = {}) {\n const opts = { ...def, ...options }\n\n if (native && !options._preferPolyfill) {\n return native(opts)\n }\n\n const input = document.createElement('input')\n input.type = 'file'\n input.multiple = opts.multiple\n input.accept = (opts.accepts || [])\n .map(e => [\n ...(e.extensions || []).map(e => '.' + e),\n ...e.mimeTypes || []]\n )\n .flat()\n .join(',')\n\n // See https://stackoverflow.com/questions/47664777/javascript-file-input-onchange-not-working-ios-safari-only\n input.style.position = 'fixed'\n input.style.top = '-100000px'\n input.style.left = '-100000px'\n document.body.appendChild(input)\n\n // Lazy load while the user is choosing the directory\n const p = import('./util.js')\n\n await new Promise(resolve => {\n input.addEventListener('change', resolve)\n input.click()\n })\n\n return p.then(m => m.getFileHandlesFromInput(input))\n}\n\nexport default showOpenFilePicker\nexport { showOpenFilePicker }\n", "/** @typedef {import('./FileSystemFileHandle.js').default} FileSystemFileHandle */\n\nconst native = globalThis.showSaveFilePicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options.excludeAcceptAllOption=false] Prevent user for selecting any\n * @param {Object[]} [options.types] Files you want to accept\n * @param {string} [options.suggestedName] the name to fall back to when using polyfill\n * @param {string} [options._name] the name to fall back to when using polyfill\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @return {Promise}\n */\nasync function showSaveFilePicker (options = {}) {\n if (native && !options._preferPolyfill) {\n return native(options)\n }\n\n if (options._name) {\n console.warn('deprecated _name, spec now have `suggestedName`')\n options.suggestedName = options._name\n }\n\n const { FileSystemFileHandle } = await import('./FileSystemFileHandle.js')\n const { FileHandle } = await import('./adapters/downloader.js')\n return new FileSystemFileHandle(new FileHandle(options.suggestedName))\n}\n\nexport default showSaveFilePicker\nexport { showSaveFilePicker }\n", "/** @typedef {import('./FileSystemDirectoryHandle.js').default} FileSystemDirectoryHandle */\n\nif (globalThis.DataTransferItem && !DataTransferItem.prototype.getAsFileSystemHandle) {\n DataTransferItem.prototype.getAsFileSystemHandle = async function () {\n const entry = this.webkitGetAsEntry()\n const [\n { FileHandle, FolderHandle },\n { FileSystemDirectoryHandle },\n { FileSystemFileHandle }\n ] = await Promise.all([\n import('./adapters/sandbox.js'),\n import('./FileSystemDirectoryHandle.js'),\n import('./FileSystemFileHandle.js')\n ])\n\n return entry.isFile\n ? new FileSystemFileHandle(new FileHandle(entry, false))\n : new FileSystemDirectoryHandle(new FolderHandle(entry, false))\n }\n}\n\n/**\n * @param {object=} driver\n * @return {Promise}\n */\nasync function getOriginPrivateDirectory (driver, options = {}) {\n if (!driver) {\n return globalThis.navigator?.storage?.getDirectory() || globalThis.getOriginPrivateDirectory()\n }\n const {FileSystemDirectoryHandle} = await import('./FileSystemDirectoryHandle.js')\n const module = await driver\n const sandbox = await (module.default\n ? module.default(options)\n : module(options)\n )\n return new FileSystemDirectoryHandle(sandbox)\n}\n\nexport default getOriginPrivateDirectory\n", "import showDirectoryPicker from './showDirectoryPicker.js'\nimport showOpenFilePicker from './showOpenFilePicker.js'\nimport showSaveFilePicker from './showSaveFilePicker.js'\nimport getOriginPrivateDirectory from './getOriginPrivateDirectory.js'\nimport FileSystemDirectoryHandle from './FileSystemDirectoryHandle.js'\nimport FileSystemFileHandle from './FileSystemFileHandle.js'\nimport FileSystemHandle from './FileSystemHandle.js'\nimport FileSystemWritableFileStream from './FileSystemWritableFileStream.js'\n\nexport {\n FileSystemDirectoryHandle,\n FileSystemFileHandle,\n FileSystemHandle,\n FileSystemWritableFileStream,\n getOriginPrivateDirectory,\n showDirectoryPicker,\n showOpenFilePicker,\n showSaveFilePicker\n}\n", "import { avaloniaDb, fileBookmarksStore } from \"./indexedDb\";\r\nimport { StorageItem, StorageItems } from \"./storageItem\";\r\nimport { showOpenFilePicker, showDirectoryPicker, showSaveFilePicker, FileSystemFileHandle } from \"native-file-system-adapter\";\r\n\r\ndeclare global {\r\n type WellKnownDirectory = \"desktop\" | \"documents\" | \"downloads\" | \"music\" | \"pictures\" | \"videos\";\r\n interface FilePickerAcceptType {\r\n description?: string | undefined;\r\n accept: Record;\r\n }\r\n}\r\n\r\nexport class StorageProvider {\r\n public static async selectFolderDialog(\r\n startIn: StorageItem | null,\r\n preferPolyfill: boolean): Promise {\r\n // 'Picker' API doesn't accept \"null\" as a parameter, so it should be set to undefined.\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handle = await showDirectoryPicker(options as any);\r\n return StorageItem.createFromHandle(handle);\r\n }\r\n\r\n public static async openFileDialog(\r\n startIn: StorageItem | null, multiple: boolean,\r\n types: FilePickerAcceptType[] | null, excludeAcceptAllOption: boolean,\r\n preferPolyfill: boolean): Promise {\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n multiple,\r\n excludeAcceptAllOption,\r\n types: (types ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handles = await showOpenFilePicker(options);\r\n return new StorageItems(handles.map((handle: FileSystemFileHandle) => StorageItem.createFromHandle(handle)));\r\n }\r\n\r\n public static async saveFileDialog(\r\n startIn: StorageItem | null, suggestedName: string | null,\r\n types: FilePickerAcceptType[] | null, excludeAcceptAllOption: boolean,\r\n preferPolyfill: boolean): Promise {\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n suggestedName: (suggestedName ?? undefined),\r\n excludeAcceptAllOption,\r\n types: (types ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handle = await showSaveFilePicker(options);\r\n return StorageItem.createFromHandle(handle);\r\n }\r\n\r\n public static async openBookmark(key: string): Promise {\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n const handle = await connection.get(fileBookmarksStore, key);\r\n return handle && StorageItem.createFromHandle(handle, key);\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n public static createAcceptType(description: string, mimeTypes: string[], extensions: string[] | undefined): FilePickerAcceptType {\r\n const accept: Record = {};\r\n mimeTypes.forEach(a => { accept[a] = extensions ?? []; });\r\n return { description, accept };\r\n }\r\n}\r\n"],
- "mappings": "8QAAA,IAAMA,GASCC,EATPC,EAAAC,EAAA,KAAMH,GAAS,CACb,eAAgB,WAAW,eAC3B,eAAgB,WAAW,eAC3B,gBAAiB,WAAW,gBAC5B,aAAc,WAAW,aACzB,KAAM,WAAW,KACjB,KAAM,WAAW,IACnB,EAEOC,EAAQD,KCTf,IAAAI,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,iBAAAC,EAAA,SAAAC,EAAA,YAAAC,KAAA,IAGQC,EAAMC,GAAMC,EACZC,GAASC,EAAMC,GAAUC,GAASC,GAAQC,GAAUC,GAE/CX,EAgGAF,EAoCAC,EA6EPa,GAECX,GAzNPY,EAAAC,EAAA,KAAAC,IACAC,KAEM,CAAE,KAAAd,EAAM,KAAAC,GAAM,aAAAC,GAAiBa,GAC/B,CAAE,QAAAZ,GAAS,KAAAC,EAAM,SAAAC,GAAU,QAAAC,GAAS,OAAAC,GAAQ,SAAAC,GAAU,WAAAC,IAAeO,EAE9DlB,EAAN,KAAW,CAMhB,YAAamB,EAAYC,EAAM,CAC7B,KAAK,WAAaD,EAClB,KAAK,KAAOC,EACZ,KAAK,KAAOA,EAAK,KACjB,KAAK,SAAW,CAClB,CAEA,MAAOC,EAAO,CACZ,IAAID,EAAO,KAAK,KAEhB,GAAI,OAAOC,GAAU,UACnB,GAAIA,EAAM,OAAS,QAAS,CAW1B,GAVI,OAAO,UAAUA,EAAM,QAAQ,GAAKA,EAAM,UAAY,IACxD,KAAK,SAAWA,EAAM,SAClB,KAAK,KAAOA,EAAM,WACpB,KAAK,KAAO,IAAInB,EACd,CAAC,KAAK,KAAM,IAAI,YAAYmB,EAAM,SAAW,KAAK,IAAI,CAAC,EACvD,KAAK,KAAK,KACV,KAAK,IACP,IAGA,EAAE,SAAUA,GACd,MAAM,IAAIjB,EAAa,GAAGK,GAAO,gCAAgC,CAAC,EAEpEY,EAAQA,EAAM,IAChB,SAAWA,EAAM,OAAS,OACxB,GAAI,OAAO,UAAUA,EAAM,QAAQ,GAAKA,EAAM,UAAY,EAAG,CAC3D,GAAI,KAAK,KAAOA,EAAM,SACpB,MAAM,IAAIjB,EAAa,GAAGC,EAAO,EAEnC,KAAK,SAAWgB,EAAM,SACtB,MACF,KACE,OAAM,IAAIjB,EAAa,GAAGK,GAAO,mCAAmC,CAAC,UAE9DY,EAAM,OAAS,WACxB,GAAI,OAAO,UAAUA,EAAM,IAAI,GAAKA,EAAM,MAAQ,EAAG,CACnDD,EAAOC,EAAM,KAAO,KAAK,KACrB,IAAInB,EAAK,CAACkB,EAAK,MAAM,EAAGC,EAAM,IAAI,CAAC,EAAGD,EAAK,KAAMA,CAAI,EACrD,IAAIlB,EAAK,CAACkB,EAAM,IAAI,WAAWC,EAAM,KAAO,KAAK,IAAI,CAAC,EAAGD,EAAK,IAAI,EAEtE,KAAK,KAAOA,EAAK,KACb,KAAK,SAAWA,EAAK,OACvB,KAAK,SAAWA,EAAK,MAEvB,KAAK,KAAOA,EACZ,MACF,KACE,OAAM,IAAIhB,EAAa,GAAGK,GAAO,mCAAmC,CAAC,EAK3EY,EAAQ,IAAIlB,GAAK,CAACkB,CAAK,CAAC,EAExB,IAAIC,EAAO,KAAK,KAEVC,EAAOD,EAAK,MAAM,EAAG,KAAK,QAAQ,EAClCE,EAAOF,EAAK,MAAM,KAAK,SAAWD,EAAM,IAAI,EAG9CI,EAAU,KAAK,SAAWF,EAAK,KAC/BE,EAAU,IACZA,EAAU,GAEZH,EAAO,IAAIpB,EAAK,CACdqB,EACA,IAAI,WAAWE,CAAO,EACtBJ,EACAG,CACF,EAAGF,EAAK,IAAI,EAEZ,KAAK,KAAOA,EAAK,KACjB,KAAK,UAAYD,EAAM,KAEvB,KAAK,KAAOC,CACd,CACA,OAAS,CACP,GAAI,KAAK,WAAW,SAAU,MAAM,IAAIlB,EAAa,GAAGE,CAAI,EAC5D,KAAK,WAAW,MAAQ,KAAK,KAC7B,KAAK,KACL,KAAK,SACL,KAAK,KAAO,KACR,KAAK,WAAW,SAClB,KAAK,WAAW,QAAQ,KAAK,UAAU,CAE3C,CACF,EAEaR,EAAN,KAAiB,CACtB,YAAa4B,EAAO,GAAIN,EAAO,IAAIlB,EAAK,CAAC,EAAGwB,CAAI,EAAGC,EAAW,GAAM,CAClE,KAAK,MAAQP,EACb,KAAK,KAAOM,EACZ,KAAK,KAAO,OACZ,KAAK,SAAW,GAChB,KAAK,SAAWC,EAChB,KAAK,SAAW,EAClB,CAEA,MAAM,SAAW,CACf,GAAI,KAAK,SAAU,MAAM,IAAIvB,EAAa,GAAGE,CAAI,EACjD,OAAO,KAAK,KACd,CAEA,MAAM,eAAgBsB,EAAM,CAC1B,GAAI,CAAC,KAAK,SAAU,MAAM,IAAIxB,EAAa,GAAGO,EAAU,EACxD,GAAI,KAAK,SAAU,MAAM,IAAIP,EAAa,GAAGE,CAAI,EAEjD,IAAMc,EAAOQ,EAAK,iBACd,MAAM,KAAK,QAAQ,EACnB,IAAI1B,EAAK,CAAC,EAAG,KAAK,IAAI,EAE1B,OAAO,IAAIF,EAAK,KAAMoB,CAAI,CAC5B,CAEA,MAAM,YAAaS,EAAO,CACxB,OAAO,OAASA,CAClB,CAEA,MAAM,UAAY,CAChB,KAAK,SAAW,GAChB,KAAK,MAAQ,IACf,CACF,EAEa9B,EAAN,KAAmB,CAGxB,YAAa2B,EAAMC,EAAW,GAAM,CAClC,KAAK,KAAOD,EACZ,KAAK,KAAO,YACZ,KAAK,SAAW,GAEhB,KAAK,SAAW,CAAC,EACjB,KAAK,SAAWC,EAChB,KAAK,SAAW,EAClB,CAGA,MAAQ,SAAW,CACjB,GAAI,KAAK,SAAU,MAAM,IAAIvB,EAAa,GAAGE,CAAI,EACjD,MAAO,OAAO,QAAQ,KAAK,QAAQ,CACrC,CAEA,MAAM,YAAauB,EAAO,CACxB,OAAO,OAASA,CAClB,CAMA,MAAM,mBAAoBH,EAAME,EAAM,CACpC,GAAI,KAAK,SAAU,MAAM,IAAIxB,EAAa,GAAGE,CAAI,EACjD,IAAMwB,EAAQ,KAAK,SAASJ,GAC5B,GAAII,EAAO,CACT,GAAIA,aAAiBhC,EACnB,MAAM,IAAIM,EAAa,GAAGG,EAAQ,EAElC,OAAOuB,CAEX,KAAO,CACL,GAAIF,EAAK,OACP,OAAQ,KAAK,SAASF,GAAQ,IAAI3B,EAAa2B,CAAI,EAEnD,MAAM,IAAItB,EAAa,GAAGE,CAAI,CAElC,CACF,CAMA,MAAM,cAAeoB,EAAME,EAAM,CAC/B,IAAME,EAAQ,KAAK,SAASJ,GACtBK,EAASD,aAAiBhC,EAChC,GAAIgC,GAASC,EAAQ,OAAOD,EAC5B,GAAIA,GAAS,CAACC,EAAQ,MAAM,IAAI3B,EAAa,GAAGG,EAAQ,EACxD,GAAI,CAACuB,GAAS,CAACF,EAAK,OAAQ,MAAM,IAAIxB,EAAa,GAAGE,CAAI,EAC1D,GAAI,CAACwB,GAASF,EAAK,OACjB,OAAQ,KAAK,SAASF,GAAQ,IAAI5B,EAAW4B,CAAI,CAErD,CAEA,MAAM,YAAaA,EAAME,EAAM,CAC7B,IAAME,EAAQ,KAAK,SAASJ,GAC5B,GAAI,CAACI,EAAO,MAAM,IAAI1B,EAAa,GAAGE,CAAI,EAC1C,MAAMwB,EAAM,SAASF,EAAK,SAAS,EACnC,OAAO,KAAK,SAASF,EACvB,CAEA,MAAM,SAAUM,EAAW,CACzB,QAASC,KAAK,OAAO,OAAO,KAAK,QAAQ,EAAG,CAC1C,GAAI,CAACD,EAAW,MAAM,IAAI5B,EAAa,GAAGI,EAAO,EACjD,MAAMyB,EAAE,SAASD,CAAS,CAC5B,CACA,KAAK,SAAW,CAAC,EACjB,KAAK,SAAW,EAClB,CACF,EAEMpB,GAAK,IAAIb,EAAa,EAAE,EAEvBE,GAAQ,IAAMW,KCzNrB,IAAAsB,GAAA,GAAAC,EAAAD,GAAA,gBAAAE,EAAA,iBAAAC,EAAA,YAAAC,KAAA,IAIQC,GAEFC,EAgEOJ,EA0CAC,EAwENC,GAxLPG,GAAAC,EAAA,KAEAC,KAEM,CAAE,WAAAJ,IAAeK,GAEjBJ,EAAN,KAAW,CAKT,YAAaK,EAAQC,EAAW,CAC9B,KAAK,OAASD,EACd,KAAK,UAAYC,CACnB,CAKA,MAAM,MAAOC,EAAO,CAClB,GAAI,OAAOA,GAAU,UACnB,GAAIA,EAAM,OAAS,QAAS,CAY1B,GAXI,OAAO,UAAUA,EAAM,QAAQ,GAAKA,EAAM,UAAY,IACxD,KAAK,OAAO,KAAKA,EAAM,QAAQ,EAC3B,KAAK,OAAO,WAAaA,EAAM,WACjC,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAW,CACrC,KAAK,OAAO,WAAaD,EACzB,KAAK,OAAO,QAAUC,EACtB,KAAK,OAAO,SAASF,EAAM,QAAQ,CACrC,CAAC,EACD,KAAK,OAAO,KAAKA,EAAM,QAAQ,IAG/B,EAAE,SAAUA,GACd,MAAM,IAAI,aAAa,2GAAgH,aAAa,EAEtJA,EAAQA,EAAM,IAChB,SAAWA,EAAM,OAAS,OACxB,GAAI,OAAO,UAAUA,EAAM,QAAQ,GAAKA,EAAM,UAAY,EAAG,CAE3D,GADA,KAAK,OAAO,KAAKA,EAAM,QAAQ,EAC3B,KAAK,OAAO,WAAaA,EAAM,SACjC,MAAM,IAAI,aAAa,0BAA2B,mBAAmB,EAEvE,MACF,KACE,OAAM,IAAI,aAAa,8GAAmH,aAAa,UAEhJA,EAAM,OAAS,WACxB,OAAO,IAAI,QAAQC,GAAW,CAC5B,GAAI,OAAO,UAAUD,EAAM,IAAI,GAAKA,EAAM,MAAQ,EAChD,KAAK,OAAO,WAAaG,GAAOF,EAAQ,EACxC,KAAK,OAAO,SAASD,EAAM,IAAI,MAE/B,OAAM,IAAI,aAAa,8GAAmH,aAAa,CAE3J,CAAC,EAGL,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAW,CACrC,KAAK,OAAO,WAAaD,EACzB,KAAK,OAAO,QAAUC,EACtB,KAAK,OAAO,MAAM,IAAI,KAAK,CAACF,CAAK,CAAC,CAAC,CACrC,CAAC,CACH,CAEA,OAAS,CACP,OAAO,IAAI,QAAQ,KAAK,UAAU,KAAK,KAAK,KAAK,SAAS,CAAC,CAC7D,CACF,EAEaX,EAAN,KAAiB,CAEtB,YAAae,EAAMC,EAAW,GAAM,CAClC,KAAK,KAAOD,EACZ,KAAK,KAAO,OACZ,KAAK,SAAWC,EAChB,KAAK,SAAW,EAClB,CAEA,IAAI,MAAQ,CACV,OAAO,KAAK,KAAK,IACnB,CAKA,YAAaC,EAAO,CAClB,OAAO,KAAK,KAAK,MAAM,IAAMA,EAAM,KAAK,MAAM,CAChD,CAGA,SAAW,CACT,OAAO,IAAI,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CACnD,CAGA,eAAgBC,EAAM,CACpB,GAAI,CAAC,KAAK,SAAU,MAAM,IAAI,aAAa,GAAGf,EAAU,EAExD,OAAO,IAAI,QAAQ,CAACS,EAASC,IAC3B,KAAK,KAAK,aAAaM,GAAc,CAC/BD,EAAK,mBAAqB,IAC5BC,EAAW,WAAaL,GAAOF,EAAQ,IAAIR,EAAKe,EAAY,KAAK,IAAI,CAAC,EACtEA,EAAW,SAAS,CAAC,GAErBP,EAAQ,IAAIR,EAAKe,EAAY,KAAK,IAAI,CAAC,CAE3C,EAAGN,CAAM,CACX,CACF,CACF,EAEaZ,EAAN,KAAmB,CAExB,YAAamB,EAAKJ,EAAW,GAAM,CACjC,KAAK,IAAMI,EACX,KAAK,SAAWJ,EAChB,KAAK,SAAW,GAChB,KAAK,KAAO,YACZ,KAAK,KAAOI,EAAI,IAClB,CAGA,YAAaH,EAAO,CAClB,OAAO,KAAK,IAAI,WAAaA,EAAM,IAAI,QACzC,CAGA,MAAQ,SAAW,CACjB,IAAMI,EAAS,KAAK,IAAI,aAAa,EAC/BC,EAAU,MAAM,IAAI,QAAQD,EAAO,YAAY,KAAKA,CAAM,CAAC,EACjE,QAAWE,KAAKD,EACd,KAAM,CAACC,EAAE,KAAMA,EAAE,OAAS,IAAIvB,EAAWuB,EAAG,KAAK,QAAQ,EAAI,IAAItB,EAAasB,EAAG,KAAK,QAAQ,CAAC,CAEnG,CAOA,mBAAoBC,EAAMN,EAAM,CAC9B,OAAO,IAAI,QAAQ,CAACN,EAASC,IAAW,CACtC,KAAK,IAAI,aAAaW,EAAMN,EAAME,GAAO,CACvCR,EAAQ,IAAIX,EAAamB,CAAG,CAAC,CAC/B,EAAGP,CAAM,CACX,CAAC,CACH,CAOA,cAAeW,EAAMN,EAAM,CACzB,OAAO,IAAI,QAAQ,CAACN,EAASC,IAC3B,KAAK,IAAI,QAAQW,EAAMN,EAAMH,GAAQH,EAAQ,IAAIZ,EAAWe,CAAI,CAAC,EAAGF,CAAM,CAC5E,CACF,CAMA,MAAM,YAAaW,EAAMN,EAAM,CAE7B,IAAMO,EAAQ,MAAM,KAAK,mBAAmBD,EAAM,CAAE,OAAQ,EAAM,CAAC,EAAE,MAAME,GACzEA,EAAI,OAAS,oBAAsB,KAAK,cAAcF,EAAM,CAAE,OAAQ,EAAM,CAAC,EAAIE,CACnF,EAEA,GAAID,aAAiB,MAAO,MAAMA,EAElC,OAAO,IAAI,QAAQ,CAACb,EAASC,IAAW,CAClCY,aAAiBxB,EACnBiB,EAAK,UACDO,EAAM,IAAI,kBAAkB,IAAMb,EAAQ,EAAGC,CAAM,EACnDY,EAAM,IAAI,OAAO,IAAMb,EAAQ,EAAGC,CAAM,EACnCY,EAAM,MACfA,EAAM,KAAK,OAAO,IAAMb,EAAQ,EAAGC,CAAM,CAE7C,CAAC,CACH,CACF,EAEOX,GAAQ,CAACgB,EAAO,CAAC,IAAM,IAAI,QAAQ,CAACN,EAASC,IAClD,OAAO,wBACLK,EAAK,YAAa,EAClBS,GAAKf,EAAQ,IAAIX,EAAa0B,EAAE,IAAI,CAAC,EACrCd,CACF,CACF,IC9LA,IAAMe,EAANC,GAEMC,EA+ECC,EAjFPC,EAAAC,EAAA,KAAML,EAAW,OAAO,SAAS,EAE3BE,EAAN,KAAuB,CAUrB,YAAaI,EAAS,CARtBC,EAAA,KAACN,IAGDM,EAAA,aAEAA,EAAA,aAIE,KAAK,KAAOD,EAAQ,KACpB,KAAK,KAAOA,EAAQ,KACpB,KAAKN,GAAYM,CACnB,CAEA,MAAM,gBAAiB,CAAC,KAAAE,EAAO,MAAM,EAAI,CAAC,EAAG,CAC3C,IAAMC,EAAS,KAAKT,GAEpB,GAAIS,EAAO,gBACT,OAAOA,EAAO,gBAAgB,CAAC,KAAAD,CAAI,CAAC,EAGtC,GAAIA,IAAS,OACX,MAAO,UACF,GAAIA,IAAS,YAClB,OAAOC,EAAO,SAAW,UAAY,SAErC,MAAM,IAAI,UAAU,QAAQD,iCAAoC,CAEpE,CAEA,MAAM,kBAAmB,CAAC,KAAAA,EAAO,MAAM,EAAI,CAAC,EAAG,CAC7C,IAAMC,EAAS,KAAKT,GACpB,GAAIS,EAAO,kBACT,OAAOA,EAAO,kBAAkB,CAAC,KAAAD,CAAI,CAAC,EAGxC,GAAIA,IAAS,OACX,MAAO,UACF,GAAIA,IAAS,YAClB,OAAOC,EAAO,SAAW,UAAY,SAErC,MAAM,IAAI,UAAU,QAAQD,iCAAoC,CAEpE,CAQA,MAAM,OAAQE,EAAU,CAAC,EAAG,CAC1B,MAAM,KAAKV,GAAU,OAAOU,CAAO,CACrC,CAKA,MAAM,YAAaC,EAAO,CACxB,OAAI,OAASA,EAAc,GAExB,CAACA,GACD,OAAOA,GAAU,UACjB,KAAK,OAASA,EAAM,MACpB,CAACA,EAAMX,GACD,GACF,KAAKA,GAAU,YAAYW,EAAMX,EAAS,CACnD,CACF,EApEGC,GAAAD,EAsEH,OAAO,eAAeE,EAAiB,UAAW,OAAO,YAAa,CACpE,MAAO,mBACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,EAEMC,EAAQD,ICjFf,IAEQU,GAEFC,EAyDCC,GA7DPC,GAAAC,EAAA,KAAAC,KAEM,CAAE,eAAAL,IAAmBM,GAErBL,EAAN,cAA2CD,EAAe,CACxD,eAAgBO,EAAM,CACpB,MAAM,GAAGA,CAAI,EAIb,OAAO,eAAe,KAAMN,EAA6B,SAAS,EAGlE,KAAK,QAAU,EACjB,CAEA,OAAS,CACP,KAAK,QAAU,GACf,IAAMO,EAAI,KAAK,UAAU,EACnBC,EAAID,EAAE,MAAM,EAClB,OAAAA,EAAE,YAAY,EACPC,CAET,CAGA,KAAMC,EAAU,CACd,OAAO,KAAK,MAAM,CAAE,KAAM,OAAQ,SAAAA,CAAS,CAAC,CAC9C,CAGA,SAAUC,EAAM,CACd,OAAO,KAAK,MAAM,CAAE,KAAM,WAAY,KAAAA,CAAK,CAAC,CAC9C,CAEA,MAAOC,EAAM,CACX,GAAI,KAAK,QACP,OAAO,QAAQ,OAAO,IAAI,UAAU,0CAA0C,CAAC,EAGjF,IAAMC,EAAS,KAAK,UAAU,EACxBJ,EAAII,EAAO,MAAMD,CAAI,EAC3B,OAAAC,EAAO,YAAY,EACZJ,CACT,CACF,EAEA,OAAO,eAAeR,EAA6B,UAAW,OAAO,YAAa,CAChF,MAAO,+BACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,EAED,OAAO,iBAAiBA,EAA6B,UAAW,CAC9D,MAAO,CAAE,WAAY,EAAK,EAC1B,KAAM,CAAE,WAAY,EAAK,EACzB,SAAU,CAAE,WAAY,EAAK,EAC7B,MAAO,CAAE,WAAY,EAAK,CAC5B,CAAC,EAEMC,GAAQD,IC7Df,IAAAa,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,YAAAC,KAAA,IAGMC,EAHNC,GAKMH,EAwCCC,GA7CPG,EAAAC,EAAA,KAAAC,IACAC,KAEML,EAAW,OAAO,SAAS,EAE3BF,EAAN,cAAmCQ,CAAiB,CAIlD,YAAaC,EAAS,CACpB,MAAMA,CAAO,EAHfC,EAAA,KAACP,IAIC,KAAKD,GAAYO,CACnB,CAOA,MAAM,eAAgBE,EAAU,CAAC,EAAG,CAClC,OAAO,IAAIC,GACT,MAAM,KAAKV,GAAU,eAAeS,CAAO,CAC7C,CACF,CAKA,MAAM,SAAW,CACf,OAAO,KAAKT,GAAU,QAAQ,CAChC,CACF,EAxBGC,GAAAD,EA0BH,OAAO,eAAeF,EAAqB,UAAW,OAAO,YAAa,CACxE,MAAO,uBACP,SAAU,GACV,WAAY,GACZ,aAAc,EAChB,CAAC,EAED,OAAO,iBAAiBA,EAAqB,UAAW,CACtD,eAAgB,CAAE,WAAY,EAAK,EACnC,QAAS,CAAE,WAAY,EAAK,CAC9B,CAAC,EAEMC,GAAQD,IC7Cf,IAAAa,GAAA,GAAAC,EAAAD,GAAA,+BAAAE,EAAA,YAAAC,KAAA,IAEMC,EAFNC,GAIMH,EAkICC,GAtIPG,EAAAC,EAAA,KAAAC,IAEMJ,EAAW,OAAO,SAAS,EAE3BF,EAAN,cAAwCO,CAAiB,CAIvD,YAAaC,EAAS,CACpB,MAAMA,CAAO,EAHfC,EAAA,KAACN,IAIC,KAAKD,GAAYM,CACnB,CAQA,MAAM,mBAAoBE,EAAMC,EAAU,CAAC,EAAG,CAC5C,GAAID,IAAS,GACX,MAAM,IAAI,UAAU,gCAAgC,EAEtD,GAAIA,IAAS,KAAOA,IAAS,MAAQA,EAAK,SAAS,GAAG,EACpD,MAAM,IAAI,UAAU,mCAAmC,EAEzDC,EAAQ,OAAS,CAAC,CAACA,EAAQ,OAC3B,IAAMC,EAAS,MAAM,KAAKV,GAAU,mBAAmBQ,EAAMC,CAAO,EACpE,OAAO,IAAIX,EAA0BY,CAAM,CAC7C,CAGA,MAAQ,SAAW,CACjB,GAAM,CAAC,qBAAAC,CAAoB,EAAI,KAAM,qCAErC,aAAiB,CAACC,EAAGC,CAAK,IAAK,KAAKb,GAAU,QAAQ,EACpD,KAAM,CAACa,EAAM,KAAMA,EAAM,OAAS,OAC9B,IAAIF,EAAqBE,CAAK,EAC9B,IAAIf,EAA0Be,CAAK,CAAC,CAC5C,CAGA,MAAQ,YAAa,CACnB,GAAM,CAAC,qBAAAF,CAAoB,EAAI,KAAM,qCACrC,QAAQ,KAAK,oCAAoC,EACjD,cAAeE,KAAS,KAAKb,GAAU,QAAQ,EAC7C,MAAMa,EAAM,OAAS,OACjB,IAAIF,EAAqBE,CAAK,EAC9B,IAAIf,EAA0Be,CAAK,CAC3C,CAOA,MAAM,cAAeL,EAAMC,EAAU,CAAC,EAAG,CACvC,GAAM,CAAC,qBAAAE,CAAoB,EAAI,KAAM,qCACrC,GAAIH,IAAS,GAAI,MAAM,IAAI,UAAU,gCAAgC,EACrE,GAAIA,IAAS,KAAOA,IAAS,MAAQA,EAAK,SAAS,GAAG,EACpD,MAAM,IAAI,UAAU,mCAAmC,EAEzDC,EAAQ,OAAS,CAAC,CAACA,EAAQ,OAC3B,IAAMC,EAAS,MAAM,KAAKV,GAAU,cAAcQ,EAAMC,CAAO,EAC/D,OAAO,IAAIE,EAAqBD,CAAM,CACxC,CAOA,MAAM,YAAaF,EAAMC,EAAU,CAAC,EAAG,CACrC,GAAID,IAAS,GACX,MAAM,IAAI,UAAU,gCAAgC,EAEtD,GAAIA,IAAS,KAAOA,IAAS,MAAQA,EAAK,SAAS,GAAG,EACpD,MAAM,IAAI,UAAU,mCAAmC,EAEzD,OAAAC,EAAQ,UAAY,CAAC,CAACA,EAAQ,UACvB,KAAKT,GAAU,YAAYQ,EAAMC,CAAO,CACjD,CAEA,MAAM,QAASK,EAAoB,CACjC,GAAI,MAAMA,EAAmB,YAAY,IAAI,EAC3C,MAAO,CAAC,EAGV,IAAMC,EAAU,CAAC,CAAE,OAAQ,KAAM,KAAM,CAAC,CAAE,CAAC,EAE3C,KAAOA,EAAQ,QAAQ,CACrB,GAAI,CAAE,OAAQC,EAAS,KAAAC,CAAK,EAAIF,EAAQ,IAAI,EAC5C,cAAiBF,KAASG,EAAQ,OAAO,EAAG,CAC1C,GAAI,MAAMH,EAAM,YAAYC,CAAkB,EAC5C,MAAO,CAAC,GAAGG,EAAMJ,EAAM,IAAI,EAEzBA,EAAM,OAAS,aACjBE,EAAQ,KAAK,CAAE,OAAQF,EAAO,KAAM,CAAC,GAAGI,EAAMJ,EAAM,IAAI,CAAE,CAAC,CAE/D,CACF,CAEA,OAAO,IACT,CAEA,MAAQ,MAAQ,CACd,aAAiB,CAACL,CAAI,IAAK,KAAKR,GAAU,QAAQ,EAChD,MAAMQ,CACV,CAEA,MAAQ,QAAU,CAChB,aAAiB,CAACI,EAAGC,CAAK,IAAK,KAC7B,MAAMA,CACV,CAEA,EA7GCZ,GAAAD,EA6GA,OAAO,iBAAiB,CACvB,OAAO,KAAK,QAAQ,CACtB,CACF,EAEA,OAAO,eAAeF,EAA0B,UAAW,OAAO,YAAa,CAC9E,MAAO,4BACP,SAAU,GACV,WAAY,GACZ,aAAc,EACf,CAAC,EAED,OAAO,iBAAiBA,EAA0B,UAAW,CAC5D,mBAAoB,CAAE,WAAY,EAAK,EACvC,QAAS,CAAE,WAAY,EAAK,EAC5B,cAAe,CAAE,WAAY,EAAK,EAClC,YAAa,CAAE,WAAY,EAAK,CACjC,CAAC,EAEMC,GAAQD,ICtIf,IAAAoB,GAAA,GAAAC,EAAAD,GAAA,YAAAE,GAAA,WAAAC,EAAA,qBAAAC,GAAA,2BAAAC,GAAA,4BAAAC,KAcA,eAAsBF,GAAkBG,EAAS,CAC/C,QAAQ,KAAK,iFAAiF,EAC9F,GAAM,CAACC,EAAQC,EAASC,CAAE,EAAI,MAAM,QAAQ,IAAI,CAC9C,oCACA,sCACA,oCACF,CAAC,EAEKC,EAAS,IAAIH,EAAO,aAAa,GAAI,EAAK,EAChD,OAAAG,EAAO,SAAWJ,EAAQ,IAAIK,GAASA,EAAM,OACzC,IAAIH,EAAQ,WAAWG,EAAO,EAAK,EACnC,IAAIH,EAAQ,aAAaG,EAAO,EAAK,CACzC,EAEO,IAAIF,EAAG,0BAA0BC,CAAM,CAChD,CAEA,eAAsBN,GAAwBQ,EAAO,CACnD,GAAM,CAAE,aAAAC,EAAc,WAAAC,CAAW,EAAI,KAAM,qCACrC,CAAE,0BAAAC,CAA0B,EAAI,KAAM,sCAEtCC,EAAQ,MAAM,KAAKJ,EAAM,KAAK,EAC9BK,EAAWD,EAAM,GAAG,mBAAmB,MAAM,IAAK,CAAC,EAAE,GACrDE,EAAO,IAAIL,EAAaI,EAAU,EAAK,EAE7C,OAAAD,EAAM,QAAQG,GAAQ,CACpB,IAAMC,EAAOD,EAAK,mBAAmB,MAAM,GAAG,EAC9CC,EAAK,MAAM,EACX,IAAMC,EAAOD,EAAK,IAAI,EAEhBE,EAAMF,EAAK,OAAO,CAACE,EAAKF,KACvBE,EAAI,SAASF,KAAOE,EAAI,SAASF,GAAQ,IAAIP,EAAaO,EAAM,EAAK,GACnEE,EAAI,SAASF,IACnBF,CAAI,EAEPI,EAAI,SAASD,GAAQ,IAAIP,EAAWK,EAAK,KAAMA,EAAM,EAAK,CAC5D,CAAC,EAEM,IAAIJ,EAA0BG,CAAI,CAC3C,CAEA,eAAsBb,GAAyBO,EAAO,CACpD,GAAM,CAAE,WAAAE,CAAW,EAAI,KAAM,qCACvB,CAAE,qBAAAS,CAAqB,EAAI,KAAM,qCAEvC,OAAO,MAAM,KAAKX,EAAM,KAAK,EAAE,IAAIO,GACjC,IAAII,EAAqB,IAAIT,EAAWK,EAAK,KAAMA,EAAM,EAAK,CAAC,CACjE,CACF,CA9DA,IAAajB,EAUAD,GAVbuB,EAAAC,EAAA,KAAavB,EAAS,CACpB,QAAS,CAAC,2BAA4B,mBAAmB,EACzD,KAAM,CAAC,2FAA4F,eAAe,EAClH,SAAU,CAAC,oEAAqE,mBAAmB,EACnG,QAAS,CAAC,8CAA+C,0BAA0B,EACnF,OAAQwB,GAAK,CAAC,6EAA6EA,IAAK,aAAa,EAC7G,SAAU,CAAC,gJAAiJ,eAAe,EAC3K,WAAY,CAAC,uFAAwF,iBAAiB,CACxH,EAEazB,GAAS,CACpB,SAAU,WAAW,cACvB,ICZA,IAAA0B,GAAA,GAAAC,EAAAD,GAAA,gBAAAE,KAAA,IAIEC,GACAC,GACAC,GACAC,GAGMC,GAEFC,GAEON,GAiFPO,GACAC,GACAC,GACAC,GACAC,GAEAC,GAqEAC,GA1KNC,GAAAC,EAAA,KAAAC,IACAC,KAEM,CACJ,eAAAhB,GACA,gBAAAC,GACA,aAAAC,GACA,KAAAC,IACEc,GAEE,CAAE,KAAAb,IAASc,EAEXb,GAAW,eAAe,KAAK,OAAO,WAAW,GAAK,OAAO,QAAU,OAAO,YAEvEN,GAAN,KAAiB,CACtB,YAAaoB,EAAO,SAAU,CAC5B,KAAK,KAAOA,EACZ,KAAK,KAAO,MACd,CAEA,MAAM,SAAW,CACf,MAAM,IAAIjB,GAAa,GAAGE,EAAI,CAChC,CAEA,MAAM,YAAYgB,EAAO,CACvB,OAAO,OAASA,CAClB,CAKA,MAAM,eAAgBC,EAAU,CAAC,EAAG,CA/BtC,IAAAC,EAgCI,IAAMC,EAAK,OAAMD,EAAA,UAAU,gBAAV,YAAAA,EAAyB,mBACpCE,EAAO,SAAS,cAAc,GAAG,EACjCC,EAAK,IAAIxB,GACTyB,EAAOD,EAAG,SAIhB,GAFAD,EAAK,SAAW,KAAK,KAEjBnB,IAAY,CAACkB,EAAI,CAEnB,IAAII,EAAS,CAAC,EACdF,EAAG,SAAS,OAAO,IAAIzB,GAAe,CACpC,MAAO4B,EAAO,CACZD,EAAO,KAAK,IAAIxB,GAAK,CAACyB,CAAK,CAAC,CAAC,CAC/B,EACA,OAAS,CACP,IAAMC,EAAO,IAAI1B,GAAKwB,EAAQ,CAAE,KAAM,yCAA0C,CAAC,EACjFA,EAAS,CAAC,EACVH,EAAK,KAAO,IAAI,gBAAgBK,CAAI,EACpCL,EAAK,MAAM,EACX,WAAW,IAAM,IAAI,gBAAgBA,EAAK,IAAI,EAAG,GAAK,CACxD,CACF,CAAC,CAAC,CACJ,KAAO,CACL,GAAM,CAAE,SAAAM,EAAU,aAAAC,CAAa,EAAI,IAAInB,GAAqBZ,EAAc,EAEpEgC,EAAW,mBAAmB,KAAK,IAAI,EAAE,QAAQ,SAAU,MAAM,EAAE,QAAQ,MAAO,KAAK,EACvFC,EAAU,CACd,sBAAuB,gCAAkCD,EACzD,eAAgB,0CAChB,GAAIX,EAAQ,KAAO,CAAE,iBAAkBA,EAAQ,IAAK,EAAI,CAAC,CAC3D,EAEMa,EAAY,WAAW,IAAMX,EAAG,OAAO,YAAY,CAAC,EAAG,GAAK,EAElEE,EAAG,SAAS,YAAY,IAAIxB,GAAgB,CAC1C,UAAW2B,EAAOO,EAAM,CACtB,GAAIP,aAAiB,WAAY,OAAOO,EAAK,QAAQP,CAAK,EAC1D,IAAMQ,EAAS,IAAI,SAASR,CAAK,EAAE,KAAK,UAAU,EAC5CS,EAAOC,IAAKF,EAAO,KAAK,EAAE,KAAKG,IAAKA,GAAE,KAAO,EAAIF,EAAKF,EAAK,QAAQI,GAAE,KAAK,CAAC,CAAC,EAClF,OAAOF,EAAK,CACd,CACF,CAAC,CAAC,EAAE,OAAOP,CAAQ,EAAE,QAAQ,IAAM,CACjC,cAAcI,CAAS,CACzB,CAAC,EAGDX,EAAG,OAAO,YAAY,CACpB,IAAKA,EAAG,MAAQS,EAChB,QAAAC,EACA,aAAAF,CACF,EAAG,CAACA,CAAY,CAAC,EAGjB,IAAMS,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,OAAS,GAChBA,EAAO,IAAMjB,EAAG,MAAQS,EACxB,SAAS,KAAK,YAAYQ,CAAM,CAClC,CAEA,OAAOd,EAAK,UAAU,CACxB,CACF,EAEMpB,GAAQ,EACRC,GAAO,EACPC,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EAERC,GAAN,KAAsB,CAEpB,YAAa8B,EAAM,CACjBA,EAAK,UAAYC,GAAS,KAAK,WAAWA,EAAM,IAAI,EACpD,KAAK,MAAQD,EACb,KAAK,YAAY,CACnB,CAEA,MAAOE,EAAY,CACjB,YAAK,YAAcA,EAEZ,KAAK,aACd,CAEA,MAAOf,EAAO,CACZ,IAAMgB,EAAU,CAAE,KAAMtC,GAAO,MAAAsB,CAAM,EAGrC,YAAK,MAAM,YAAYgB,EAAS,CAAChB,EAAM,MAAM,CAAC,EAG9C,KAAK,YAAY,EAGV,KAAK,aACd,CAEA,OAAS,CACP,KAAK,MAAM,YAAY,CAAE,KAAMlB,EAAM,CAAC,EACtC,KAAK,MAAM,MAAM,CACnB,CAEA,MAAOmC,EAAQ,CACb,KAAK,MAAM,YAAY,CAAE,KAAMpC,GAAO,OAAAoC,CAAO,CAAC,EAC9C,KAAK,MAAM,MAAM,CACnB,CAEA,WAAYD,EAAS,CACfA,EAAQ,OAASrC,IAAM,KAAK,cAAc,EAC1CqC,EAAQ,OAASpC,IAAO,KAAK,SAASoC,EAAQ,MAAM,CAC1D,CAEA,SAAUC,EAAQ,CAChB,KAAK,YAAY,MAAMA,CAAM,EAC7B,KAAK,aAAaA,CAAM,EACxB,KAAK,MAAM,MAAM,CACnB,CAEA,aAAe,CACb,KAAK,cAAgB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACpD,KAAK,cAAgBD,EACrB,KAAK,aAAeC,CACtB,CAAC,EACD,KAAK,cAAgB,EACvB,CAEA,eAAiB,CACf,KAAK,cAAc,EACnB,KAAK,cAAgB,EACvB,CAEA,aAAcF,EAAQ,CACf,KAAK,eAAe,KAAK,YAAY,EAC1C,KAAK,cAAc,MAAM,IAAM,CAAC,CAAC,EACjC,KAAK,aAAaA,CAAM,EACxB,KAAK,cAAgB,EACvB,CACF,EAEMjC,GAAN,KAA2B,CACzB,YAAaZ,EAAgB,CAC3B,IAAMgD,EAAU,IAAI,eACpB,KAAK,aAAeA,EAAQ,MAC5B,KAAK,SAAW,IAAIhD,EAClB,IAAIW,GAAgBqC,EAAQ,KAAK,CACnC,CACF,CACF,IClLA,IAAMC,GAAN,KAAwB,CACpB,YAA6BC,EAAuB,CAAvB,cAAAA,CAAyB,CAE9C,UAAUC,EAAeC,EAA0C,CAEvE,OADW,KAAK,SAAS,YAAYD,EAAOC,CAAI,EACtC,YAAYD,CAAK,CAC/B,CAEA,MAAa,IAAIA,EAAeE,EAAUC,EAAyC,CAC/E,IAAMC,EAAK,KAAK,UAAUJ,EAAO,WAAW,EAE5C,OAAO,MAAM,IAAI,QAAQ,CAACK,EAASC,IAAW,CAC1C,IAAMC,EAAWH,EAAG,IAAIF,EAAKC,CAAG,EAChCI,EAAS,UAAY,IAAM,CACvBF,EAAQE,EAAS,MAAM,CAC3B,EACAA,EAAS,QAAU,IAAM,CACrBD,EAAOC,EAAS,KAAK,CACzB,CACJ,CAAC,CACL,CAEO,IAAIP,EAAeG,EAAuB,CAC7C,IAAMC,EAAK,KAAK,UAAUJ,EAAO,UAAU,EAE3C,OAAO,IAAI,QAAQ,CAACK,EAASC,IAAW,CACpC,IAAMC,EAAWH,EAAG,IAAID,CAAG,EAC3BI,EAAS,UAAY,IAAM,CACvBF,EAAQE,EAAS,MAAM,CAC3B,EACAA,EAAS,QAAU,IAAM,CACrBD,EAAOC,EAAS,KAAK,CACzB,CACJ,CAAC,CACL,CAEA,MAAa,OAAOP,EAAeG,EAAiC,CAChE,IAAMC,EAAK,KAAK,UAAUJ,EAAO,WAAW,EAE5C,OAAO,MAAM,IAAI,QAAQ,CAACK,EAASC,IAAW,CAC1C,IAAMC,EAAWH,EAAG,OAAOD,CAAG,EAC9BI,EAAS,UAAY,IAAM,CACvBF,EAAQ,CACZ,EACAE,EAAS,QAAU,IAAM,CACrBD,EAAOC,EAAS,KAAK,CACzB,CACJ,CAAC,CACL,CAEO,OAAQ,CACX,KAAK,SAAS,MAAM,CACxB,CACJ,EAEMC,GAAN,KAAuB,CACnB,YAA6BC,EAAuCC,EAAwB,CAA/D,kBAAAD,EAAuC,kBAAAC,CACpE,CAEA,MAAa,SAAsC,CAC/C,IAAMC,EAAO,OAAO,UAAU,KAAK,KAAK,aAAc,CAAC,EAEvD,OAAAA,EAAK,gBAAkBC,GAAS,CAC5B,IAAMC,EAAMD,EAAM,OAAmC,OACrD,KAAK,aAAa,QAAQZ,GAAS,CAC/Ba,EAAG,kBAAkBb,CAAK,CAC9B,CAAC,CACL,EAEO,MAAM,IAAI,QAAQ,CAACK,EAASC,IAAW,CAC1CK,EAAK,UAAYC,GAAS,CACtBP,EAAQ,IAAIP,GAAmBc,EAAM,OAAmC,MAAM,CAAC,CACnF,EACAD,EAAK,QAAUC,GAAS,CACpBN,EAAQM,EAAM,OAAmC,KAAK,CAC1D,CACJ,CAAC,CACL,CACJ,EAEaE,EAA6B,gBAC7BC,EAAa,IAAIP,GAAiB,aAAc,CACzDM,CACJ,CAAC,EClFM,IAAME,EAAN,KAAkB,CACrB,OAAc,oBACVC,EACAC,EACAC,EACF,CANN,IAAAC,EAAAC,EAOQ,GAAI,CAACC,GACD,MAAM,IAAI,MACN,gFACJ,EAGJ,IAAMC,GAAQH,EAAAD,GAAA,YAAAA,EAAS,QAAT,KAAAC,EAAkB,GAChC,GAAIG,EAAO,CACP,IAAMC,EAAK,SAAS,cAChB,2CACJ,EACIA,KAAIH,EAAAG,EAAG,aAAH,MAAAH,EAAe,YAAYG,GACvC,CAGA,IAAMC,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,GAAK,2CACT,SAAS,KAAK,YAAYA,CAAG,EAE7B,IAAMC,EAAQD,EAAI,MACZE,EAAW,OAAO,iBAClB,OAAO,iBAAiBV,CAAO,EAC7BA,EAAgB,aAClBW,EAAUX,EAAQ,WAAa,QAGrCS,EAAM,WAAa,WACdE,IAASF,EAAM,SAAW,cAG/BA,EAAM,SAAW,WACZH,IAAOG,EAAM,WAAa,UAG/BG,GAAW,QAASC,GAAiB,CACjC,GAAIF,GAAWE,IAAS,aAEpB,GAAIH,EAAS,YAAc,aAAc,CACrC,IAAMI,EAAS,SAASJ,EAAS,MAAM,EACjCK,EACF,SAASL,EAAS,UAAU,EAC5B,SAASA,EAAS,aAAa,EAC/B,SAASA,EAAS,cAAc,EAChC,SAASA,EAAS,iBAAiB,EACjCM,EAAeD,EAAc,SAASL,EAAS,UAAU,EAC3DI,EAASE,EACTP,EAAM,WAAa,GAAGK,EAASC,MACxBD,IAAWE,EAClBP,EAAM,WAAaC,EAAS,WAE5BD,EAAM,WAAa,GAE3B,MACIA,EAAM,WAAaC,EAAS,YAG/BD,EAAcI,GAASH,EAAiBG,EAEjD,CAAC,EAEGI,GAEIjB,EAAQ,aAAe,SAASU,EAAS,MAAM,IAC/CD,EAAM,UAAY,UAGtBA,EAAM,SAAW,SAGrBD,EAAI,YAAcR,EAAQ,MAAM,UAAU,EAAGC,CAAQ,EAGjDU,IAASH,EAAI,YAAcA,EAAI,YAAY,QAAQ,MAAO,MAAQ,GAEtE,IAAMU,EAAO,SAAS,cAAc,MAAM,EAM1CA,EAAK,YAAclB,EAAQ,MAAM,UAAUC,CAAQ,GAAK,IACxDO,EAAI,YAAYU,CAAI,EAEpB,IAAMC,EAAc,CAChB,IAAKD,EAAK,UAAY,SAASR,EAAS,cAAc,EACtD,KAAMQ,EAAK,WAAa,SAASR,EAAS,eAAe,EACzD,OAAQ,SAASA,EAAS,UAAU,CACxC,EAEA,OAAIJ,EACAY,EAAK,MAAM,gBAAkB,OAE7B,SAAS,KAAK,YAAYV,CAAG,EAG1BW,CACX,CACJ,EAEMP,GAAa,CACf,YACA,YACA,QACA,SACA,YACA,YAEA,iBACA,mBACA,oBACA,kBACA,cAEA,aACA,eACA,gBACA,cAGA,YACA,cACA,aACA,cACA,WACA,iBACA,aACA,aAEA,YACA,gBACA,aACA,iBAEA,gBACA,cAEA,UACA,YACJ,EAEMP,GAAY,OAAO,QAAW,YAC9BY,GAAYZ,IAAc,OAAe,iBAAmB,KC9G3D,IAAMe,EAAN,KAAkB,CAKrB,OAAc,8BAA+B,CACrC,KAAK,iBAAmB,IAI5B,WAAW,iBAAiB,QAAUC,GAAc,CAC5C,KAAK,iBAAmB,GACxB,KAAK,iBAAiBA,EAAK,cAAc,QAAQ,MAAM,CAAC,CAEhE,CAAC,EACD,KAAK,eAAiB,EAC1B,CAEA,aAAoB,mBAAqC,CACrD,GAAI,WAAW,UAAU,UAAU,SAC/B,OAAO,MAAM,WAAW,UAAU,UAAU,SAAS,EAErD,GAAI,CACA,OAAO,MAAM,IAAI,QAAa,CAACC,EAASC,IAAW,CAC/C,KAAK,eAAiB,EACtB,KAAK,iBAAmBD,EACxB,KAAK,gBAAkBC,CAC3B,CAAC,CACL,QAAE,CACE,KAAK,eAAiB,EACtB,KAAK,iBAAmB,KACxB,KAAK,gBAAkB,IAC3B,CAER,CAEA,OAAc,mBACVC,EACAC,EACAC,EAAqF,CACrF,IAAMC,EAAkBN,GAAwB,CACxCI,EAAgBJ,EAAK,KAAMA,EAAK,IAAK,KAAK,aAAaA,CAAI,CAAC,GACxD,KAAK,iBAAmB,GACxBA,EAAK,eAAe,CAGhC,EACAG,EAAQ,iBAAiB,UAAWG,CAAc,EAElD,IAAMC,EAAgBP,GAAwB,CACtCK,EAAcL,EAAK,KAAMA,EAAK,IAAK,KAAK,aAAaA,CAAI,CAAC,GAC1DA,EAAK,eAAe,EAEpB,KAAK,iBACL,KAAK,gBAAgB,CAE7B,EAEA,OAAAG,EAAQ,iBAAiB,QAASI,CAAY,EAEvC,IAAM,CACTJ,EAAQ,oBAAoB,UAAWG,CAAc,EACrDH,EAAQ,oBAAoB,QAASI,CAAY,CACrD,CACJ,CAEA,OAAc,oBACVJ,EACAK,EACAC,EACAC,EACAC,EAA6D,CAC7D,IAAMC,EAA2BZ,GAA2B,CACpDS,EAAyBT,CAAI,GAC7BA,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,mBAAoBS,CAAuB,EAEpE,IAAMC,EAAsBb,GAAqB,CAC7C,IAAMc,EAASd,EAAK,gBAAgB,EAChCe,EAAQ,GACRC,EAAM,GACNF,EAAO,OAAS,IAChBC,EAAQD,EAAO,GAAG,YAClBE,EAAMF,EAAO,GAAG,WAGhBd,EAAK,YAAc,0BACnBe,EAAQ,EACRC,EAAMD,EAAQ,GAEdP,EAAoBR,EAAMe,EAAOC,CAAG,GACpChB,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,cAAeU,CAAkB,EAE1D,IAAMI,EAA4BjB,GAA2B,CACrDU,EAA0BV,CAAI,GAC9BA,EAAK,eAAe,CAE5B,EACAG,EAAQ,iBAAiB,oBAAqBc,CAAwB,EAEtE,IAAMC,EAAyBlB,GAA2B,CAClDW,EAAuBX,CAAI,GAC3BA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,iBAAkBe,CAAqB,EAEzD,IAAM,CACTf,EAAQ,oBAAoB,mBAAoBS,CAAuB,EACvET,EAAQ,oBAAoB,oBAAqBc,CAAwB,EACzEd,EAAQ,oBAAoB,iBAAkBe,CAAqB,CACvE,CACJ,CAEA,OAAc,uBACVf,EACAgB,EACAC,EACAC,EACAC,EACAC,EACF,CACE,IAAMC,EAAsBxB,GAAuB,CAC/CmB,EAAoBnB,CAAI,EACxBA,EAAK,eAAe,CACxB,EAEMyB,EAAsBzB,GAAuB,CAC/CoB,EAAoBpB,CAAI,EACxBA,EAAK,eAAe,CACxB,EAEM0B,EAAoB1B,GAAuB,CAC7CqB,EAAkBrB,CAAI,EACtBA,EAAK,eAAe,CACxB,EAEM2B,EAAwB3B,GAAuB,CACjDsB,EAAsBtB,CAAI,EAC1BA,EAAK,eAAe,CACxB,EAEM4B,EAAgB5B,GAAqB,CACvCuB,EAAcvB,CAAI,EAClBA,EAAK,eAAe,CACxB,EAEA,OAAAG,EAAQ,iBAAiB,cAAeqB,CAAkB,EAC1DrB,EAAQ,iBAAiB,cAAesB,CAAkB,EAC1DtB,EAAQ,iBAAiB,YAAauB,CAAgB,EACtDvB,EAAQ,iBAAiB,QAASyB,CAAY,EAC9CzB,EAAQ,iBAAiB,gBAAiBwB,CAAoB,EAEvD,IAAM,CACTxB,EAAQ,oBAAoB,cAAeqB,CAAkB,EAC7DrB,EAAQ,oBAAoB,cAAesB,CAAkB,EAC7DtB,EAAQ,oBAAoB,YAAauB,CAAgB,EACzDvB,EAAQ,oBAAoB,gBAAiBwB,CAAoB,EACjExB,EAAQ,oBAAoB,QAASyB,CAAY,CACrD,CACJ,CAEA,OAAc,qBACVzB,EACA0B,EACF,CACE,IAAMC,EAAgB9B,GAAgB,CAC9B6B,EAAe7B,EAAa,KAAK,GACjCA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,QAAS2B,CAAY,EAEvC,IAAM,CACT3B,EAAQ,oBAAoB,QAAS2B,CAAY,CACrD,CACJ,CAEA,OAAc,oBACV3B,EACA4B,EACF,CACE,IAAMC,EAAehC,GAAgB,CAC7B+B,EAAU/B,CAAW,GACrBA,EAAK,eAAe,CAE5B,EACA,OAAAG,EAAQ,iBAAiB,WAAY6B,CAAW,EAChD7B,EAAQ,iBAAiB,YAAa6B,CAAW,EACjD7B,EAAQ,iBAAiB,YAAa6B,CAAW,EACjD7B,EAAQ,iBAAiB,OAAQ6B,CAAW,EAErC,IAAM,CACT7B,EAAQ,oBAAoB,WAAY6B,CAAW,EACnD7B,EAAQ,oBAAoB,YAAa6B,CAAW,EACpD7B,EAAQ,oBAAoB,YAAa6B,CAAW,EACpD7B,EAAQ,oBAAoB,OAAQ6B,CAAW,CACnD,CACJ,CAEA,OAAc,mBAAmBC,EAA4C,CACzE,OAAOA,EAAa,mBAAmB,CAC3C,CAEA,OAAc,gCACV9B,EACA+B,EAAiC,CAC7B,oBAAqB,WAEpB,UAAkB,gBAAgB,iBAAiB,iBAAmBC,GAAe,CAClF,IAAMC,EAAcjC,EAAQ,sBAAsB,EAC5CkC,EAAeF,EAAM,OAAO,aAClCD,EAAQ,CACJ,EAAGG,EAAa,EAAID,EAAY,EAChC,EAAGC,EAAa,EAAID,EAAY,EAChC,MAAOC,EAAa,MACpB,OAAQA,EAAa,MACzB,CAAC,CACL,CAAC,CAET,CAEA,OAAc,0BACVH,EAA4C,CAC5C,gBAAS,iBAAiB,mBAAoB,IAAM,CAChDA,EAAQ,SAAS,kBAAoB,SAAS,CAClD,CAAC,EACM,SAAS,kBAAoB,SACxC,CAEA,OAAc,WAAWI,EAAgC,CACrDA,EAAa,MAAQ,EACzB,CAEA,OAAc,aAAaA,EAA2B,CAClDA,EAAa,MAAM,CACvB,CAEA,OAAc,UAAUA,EAAgCC,EAAc,CAC9DA,IAAS,UACTD,EAAa,MAAM,eAAe,QAAQ,EAE1CA,EAAa,MAAM,OAASC,CAEpC,CAEA,OAAc,UAAUD,EAAgCE,EAAWC,EAAWC,EAAoBC,EAAqBC,EAAe,CAClIN,EAAa,MAAM,KAAQE,EAAG,QAAQ,CAAC,EAAI,KAC3CF,EAAa,MAAM,IAAOG,EAAG,QAAQ,CAAC,EAAI,KAE1C,GAAM,CAAE,KAAAI,EAAM,IAAAC,CAAI,EAAIC,EAAY,oBAAoBT,EAAcM,CAAK,EAEzEN,EAAa,MAAM,MAAQE,EAAIK,GAAM,QAAQ,CAAC,EAAI,KAClDP,EAAa,MAAM,KAAOG,EAAIK,GAAK,QAAQ,CAAC,EAAI,IACpD,CAEA,OAAc,KAAKR,EAAgC,CAC/CA,EAAa,MAAM,QAAU,MACjC,CAEA,OAAc,KAAKA,EAAgC,CAC/CA,EAAa,MAAM,QAAU,OACjC,CAEA,OAAc,mBAAmBA,EAAgCU,EAAcjC,EAAeC,EAAa,CACnG,CAACsB,IAILA,EAAa,MAAQU,EACrBV,EAAa,kBAAkBvB,EAAOC,CAAG,EACzCsB,EAAa,MAAM,MAAQ,OAC3BA,EAAa,MAAM,MAAQ,GAAGA,EAAa,gBAC/C,CAEA,OAAe,aAAatC,EAAwC,CAChE,IAAIiD,EAAY,EAEhB,OAAIjD,EAAK,UAAWiD,GAAa,GAC7BjD,EAAK,SAAUiD,GAAa,GAC5BjD,EAAK,WAAYiD,GAAa,GAC9BjD,EAAK,UAAWiD,GAAa,GAE1BA,CACX,CACJ,EAlSalD,EACF,eAAiC,ECvCrC,IAAMmD,EAAN,KAAc,CACjB,OAAc,qBAA+B,CACzC,MAAO,uBAAwB,UACnC,CAEA,OAAc,UAAoB,CALtC,IAAAC,EAMQ,IAAMC,GAAiBD,EAAA,WAAW,YAAX,YAAAA,EAA8B,cACrD,GAAIC,EACA,OAAOA,EAAc,OAGzB,IAAMC,EAAY,UAAU,UACtBC,EAAS,2TACTC,EAAS,8+CACf,OAAOD,EAAO,KAAKD,CAAS,GAAKE,EAAO,KAAKF,EAAU,OAAO,EAAG,CAAC,CAAC,CACvE,CACJ,ECZO,IAAMG,EAAN,KAAkB,CACb,YACGC,EACUC,EACAC,EACVC,EACT,CAJS,YAAAH,EACU,UAAAC,EACA,gBAAAC,EACV,mBAAAC,CAEX,CAEA,IAAW,MAAe,CAb9B,IAAAC,EAcQ,OAAI,KAAK,OACE,KAAK,OAAO,KAEnB,KAAK,KACE,KAAK,KAAK,MAEdA,EAAA,KAAK,gBAAL,KAAAA,EAAsB,EACjC,CAEA,IAAW,MAA6B,CACpC,OAAI,KAAK,OACE,KAAK,OAAO,KAEnB,KAAK,KACE,OAEJ,WACX,CAEA,OAAc,iBAAiBJ,EAA0DE,EAAqB,CAC1G,OAAO,IAAIH,EAAYC,EAAQ,OAAWE,EAAY,MAAS,CACnE,CAEA,OAAc,eAAeD,EAAY,CACrC,OAAO,IAAIF,EAAY,OAAWE,EAAM,OAAW,MAAS,CAChE,CAEA,OAAc,yBAAyBI,EAA0B,CAC7D,OAAO,IAAIN,EAAY,OAAW,OAAW,OAAWM,CAAI,CAChE,CAEA,aAAoB,SAASC,EAAkC,CAC3D,GAAIA,EAAK,KACL,OAAOA,EAAK,KAGhB,GAAI,CAACA,EAAK,QAAUA,EAAK,OAAS,OAC9B,MAAM,IAAI,MAAM,2BAA2B,EAG/C,aAAMA,EAAK,kBAAkB,MAAM,EAEtB,MAAOA,EAAK,OAAgC,QAAQ,CAErE,CAEA,aAAoB,UAAUA,EAA0D,CACpF,GAAI,CAACA,EAAK,QAAUA,EAAK,OAAS,OAC9B,MAAM,IAAI,MAAM,qCAAqC,EAGzD,aAAMA,EAAK,kBAAkB,WAAW,EAEjC,MAAOA,EAAK,OAAgC,eAAe,CAAE,iBAAkB,EAAK,CAAC,CAChG,CAEA,aAAoB,cAAcA,EAAyF,CAEvH,GAAI,CACA,IAAML,EAAOK,EAAK,QAAU,YAAaA,EAAK,OACxC,MAAMA,EAAK,OAAO,QAAQ,EAC1BA,EAAK,KAEX,OAAKL,EAIE,CACH,KAAMA,EAAK,KACX,aAAcA,EAAK,aACnB,KAAMA,EAAK,IACf,EAPW,IAQf,OAAQM,EAAN,CACE,OAAO,IACX,CACJ,CAEA,OAAc,iBAAiBD,EAA+B,CAC1D,OAAIA,EAAK,OAAS,aAAe,CAACA,EAAK,OAC5B,KAGHA,EAAK,OAAe,QAAQ,CACxC,CAEA,aAAoB,WAAWA,EAAmBE,EAAmC,CACjF,GAAIF,EAAK,OAAS,aAAe,CAACA,EAAK,OACnC,MAAM,IAAI,UAAU,kDAAkD,EAG1E,aAAMA,EAAK,kBAAkB,WAAW,EAEjC,MAAQA,EAAK,OAAe,cAAcE,EAAM,CAAE,OAAQ,EAAK,CAAC,CAC3E,CAEA,aAAoB,aAAaF,EAAmBE,EAAmC,CACnF,GAAIF,EAAK,OAAS,aAAe,CAACA,EAAK,OACnC,MAAM,IAAI,UAAU,kDAAkD,EAG1E,aAAMA,EAAK,kBAAkB,WAAW,EAEjC,MAAQA,EAAK,OAAe,mBAAmBE,EAAM,CAAE,OAAQ,EAAK,CAAC,CAChF,CAEA,aAAoB,YAAYF,EAAwC,CACpE,OAAKA,EAAK,QAIV,MAAMA,EAAK,kBAAkB,WAAW,EAEjC,MAAQA,EAAK,OAAe,OAAO,CAAE,UAAW,EAAK,CAAC,GALlD,IAMf,CAEA,aAAoB,UAAUA,EAAmBG,EAA+C,CAC5F,GAAI,CAACH,EAAK,OACN,OAAO,KAEX,GAAIG,EAAY,OAAS,aAAe,CAACA,EAAY,OACjD,MAAM,IAAI,UAAU,gDAAgD,EAGxE,aAAMH,EAAK,kBAAkB,WAAW,EAEjC,MAAQA,EAAK,OAAe,KAAKG,CAA0B,CACtE,CAEA,MAAc,kBAAkBC,EAAmD,CAC/E,GAAI,EAAC,KAAK,QAKN,EAACC,EAAQ,oBAAoB,GAI7B,MAAM,KAAK,OAAO,gBAAgB,CAAE,KAAAD,CAAK,CAAC,IAAM,WAIhD,MAAM,KAAK,OAAO,kBAAkB,CAAE,KAAAA,CAAK,CAAC,IAAM,SAClD,MAAM,IAAI,MAAM,oBAAoB,CAE5C,CAEA,aAAoB,aAAaJ,EAA2C,CAExE,GAAIA,EAAK,WACL,OAAOA,EAAK,WAIhB,GAAI,CAACA,EAAK,QAAU,CAACK,EAAQ,oBAAoB,EAC7C,OAAO,KAGX,IAAMC,EAAa,MAAMC,EAAW,QAAQ,EAC5C,GAAI,CAEA,OADY,MAAMD,EAAW,IAAIE,EAAoBR,EAAK,OAAQA,EAAK,mBAAmB,CAAC,CAE/F,QAAE,CACEM,EAAW,MAAM,CACrB,CACJ,CAEA,aAAoB,eAAeN,EAAkC,CACjE,GAAI,CAACA,EAAK,YAAc,CAACK,EAAQ,oBAAoB,EACjD,OAGJ,IAAMC,EAAa,MAAMC,EAAW,QAAQ,EAC5C,GAAI,CACA,MAAMD,EAAW,OAAOE,EAAoBR,EAAK,UAAU,CAC/D,QAAE,CACEM,EAAW,MAAM,CACrB,CACJ,CAEQ,oBAA6B,CACjC,OAAO,KAAK,IAAI,EAAE,SAAS,EAAE,EAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAC3E,CACJ,EAEaG,EAAN,KAAmB,CACtB,YAA6BC,EAAsB,CAAtB,WAAAA,CAAwB,CAErD,OAAc,WAAWC,EAAuC,CAC5D,OAAOA,EAAS,KACpB,CAEA,OAAc,kBAAkBC,EAA8B,CAC1D,GAAI,CAACA,EACD,MAAO,CAAC,EAGZ,IAAMC,EAAW,CAAC,EAClB,QAAS,EAAI,EAAG,EAAID,EAAM,OAAQ,IAC9BC,EAAS,GAAKpB,EAAY,eAAemB,EAAM,EAAE,EAErD,OAAOC,CACX,CACJ,ECvNA,IAAMC,GAAS,WAAW,oBAO1B,eAAeC,GAAqBC,EAAU,CAAC,EAAG,CAChD,GAAIF,IAAU,CAACE,EAAQ,gBACrB,OAAOF,GAAOE,CAAO,EAGvB,IAAMC,EAAQ,SAAS,cAAc,OAAO,EAI5C,GAHAA,EAAM,KAAO,OAGT,EAAE,oBAAqBA,GACzB,MAAM,IAAI,MAAM,mDAAmD,EAIrEA,EAAM,MAAM,SAAW,QACvBA,EAAM,MAAM,IAAM,YAClBA,EAAM,MAAM,KAAO,YACnB,SAAS,KAAK,YAAYA,CAAK,EAE/BA,EAAM,gBAAkB,GAGxB,IAAMC,EAAI,qCAEV,aAAM,IAAI,QAAQC,GAAW,CAC3BF,EAAM,iBAAiB,SAAUE,CAAO,EACxCF,EAAM,MAAM,CACd,CAAC,EAEMC,EAAE,KAAKE,GAAOA,EAAI,uBAAuBH,CAAK,CAAC,CACxD,CAEA,IAAOI,GAAQN,GCvCf,IAAMO,GAAM,CAAE,QAAS,CAAC,CAAE,EACpBC,GAAS,WAAW,mBAU1B,eAAeC,GAAoBC,EAAU,CAAC,EAAG,CAC/C,IAAMC,EAAO,CAAE,GAAGJ,GAAK,GAAGG,CAAQ,EAElC,GAAIF,IAAU,CAACE,EAAQ,gBACrB,OAAOF,GAAOG,CAAI,EAGpB,IAAMC,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,KAAO,OACbA,EAAM,SAAWD,EAAK,SACtBC,EAAM,QAAUD,EAAK,SAAW,CAAC,GAC9B,IAAIE,GAAK,CACR,IAAIA,EAAE,YAAc,CAAC,GAAG,IAAIA,GAAK,IAAMA,CAAC,EACxC,GAAGA,EAAE,WAAa,CAAC,CAAC,CACtB,EACC,KAAK,EACL,KAAK,GAAG,EAGXD,EAAM,MAAM,SAAW,QACvBA,EAAM,MAAM,IAAM,YAClBA,EAAM,MAAM,KAAO,YACnB,SAAS,KAAK,YAAYA,CAAK,EAG/B,IAAME,EAAI,qCAEV,aAAM,IAAI,QAAQC,GAAW,CAC3BH,EAAM,iBAAiB,SAAUG,CAAO,EACxCH,EAAM,MAAM,CACd,CAAC,EAEME,EAAE,KAAKE,GAAKA,EAAE,wBAAwBJ,CAAK,CAAC,CACrD,CAEA,IAAOK,GAAQR,GC9Cf,IAAMS,GAAS,WAAW,mBAW1B,eAAeC,GAAoBC,EAAU,CAAC,EAAG,CAC/C,GAAIF,IAAU,CAACE,EAAQ,gBACrB,OAAOF,GAAOE,CAAO,EAGnBA,EAAQ,QACV,QAAQ,KAAK,iDAAiD,EAC9DA,EAAQ,cAAgBA,EAAQ,OAGlC,GAAM,CAAE,qBAAAC,CAAqB,EAAI,KAAM,qCACjC,CAAE,WAAAC,CAAW,EAAI,KAAM,uCAC7B,OAAO,IAAID,EAAqB,IAAIC,EAAWF,EAAQ,aAAa,CAAC,CACvE,CAEA,IAAOG,GAAQJ,GC1BX,WAAW,kBAAoB,CAAC,iBAAiB,UAAU,wBAC7D,iBAAiB,UAAU,sBAAwB,gBAAkB,CACnE,IAAMK,EAAQ,KAAK,iBAAiB,EAC9B,CACJ,CAAE,WAAAC,EAAY,aAAAC,CAAa,EAC3B,CAAE,0BAAAC,CAA0B,EAC5B,CAAE,qBAAAC,CAAqB,CACzB,EAAI,MAAM,QAAQ,IAAI,CACpB,sCACA,qCACA,mCACF,CAAC,EAED,OAAOJ,EAAM,OACT,IAAII,EAAqB,IAAIH,EAAWD,EAAO,EAAK,CAAC,EACrD,IAAIG,EAA0B,IAAID,EAAaF,EAAO,EAAK,CAAC,CAClE,GCdFK,IACAC,IACAC,IACAC,KCKO,IAAMC,GAAN,KAAsB,CACzB,aAAoB,mBAChBC,EACAC,EAA+C,CAfvD,IAAAC,EAAAC,EAiBQ,IAAMC,EAAU,CACZ,SAAUD,GAAAD,EAAAF,GAAA,YAAAA,EAAS,gBAAT,KAAAE,EAA0BF,GAAA,YAAAA,EAAS,SAAnC,KAAAG,EAA6C,OACvD,gBAAiBF,CACrB,EAEMI,EAAS,MAAMC,GAAoBF,CAAc,EACvD,OAAOG,EAAY,iBAAiBF,CAAM,CAC9C,CAEA,aAAoB,eAChBL,EAA6BQ,EAC7BC,EAAsCC,EACtCT,EAAgD,CA7BxD,IAAAC,EAAAC,EA8BQ,IAAMC,EAAU,CACZ,SAAUD,GAAAD,EAAAF,GAAA,YAAAA,EAAS,gBAAT,KAAAE,EAA0BF,GAAA,YAAAA,EAAS,SAAnC,KAAAG,EAA6C,OACvD,SAAAK,EACA,uBAAAE,EACA,MAAQD,GAAA,KAAAA,EAAS,OACjB,gBAAiBR,CACrB,EAEMU,EAAU,MAAMC,GAAmBR,CAAO,EAChD,OAAO,IAAIS,EAAaF,EAAQ,IAAKN,GAAiCE,EAAY,iBAAiBF,CAAM,CAAC,CAAC,CAC/G,CAEA,aAAoB,eAChBL,EAA6Bc,EAC7BL,EAAsCC,EACtCT,EAA+C,CA7CvD,IAAAC,EAAAC,EA8CQ,IAAMC,EAAU,CACZ,SAAUD,GAAAD,EAAAF,GAAA,YAAAA,EAAS,gBAAT,KAAAE,EAA0BF,GAAA,YAAAA,EAAS,SAAnC,KAAAG,EAA6C,OACvD,cAAgBW,GAAA,KAAAA,EAAiB,OACjC,uBAAAJ,EACA,MAAQD,GAAA,KAAAA,EAAS,OACjB,gBAAiBR,CACrB,EAEMI,EAAS,MAAMU,GAAmBX,CAAO,EAC/C,OAAOG,EAAY,iBAAiBF,CAAM,CAC9C,CAEA,aAAoB,aAAaW,EAA0C,CACvE,IAAMC,EAAa,MAAMC,EAAW,QAAQ,EAC5C,GAAI,CACA,IAAMb,EAAS,MAAMY,EAAW,IAAIE,EAAoBH,CAAG,EAC3D,OAAOX,GAAUE,EAAY,iBAAiBF,EAAQW,CAAG,CAC7D,QAAE,CACEC,EAAW,MAAM,CACrB,CACJ,CAEA,OAAc,iBAAiBG,EAAqBC,EAAqBC,EAAwD,CAC7H,IAAMC,EAAmC,CAAC,EAC1C,OAAAF,EAAU,QAAQG,GAAK,CAAED,EAAOC,GAAKF,GAAA,KAAAA,EAAc,CAAC,CAAG,CAAC,EACjD,CAAE,YAAAF,EAAa,OAAAG,CAAO,CACjC,CACJ",
- "names": ["config", "config_default", "init_config", "__esmMin", "memory_exports", "__export", "FileHandle", "FolderHandle", "Sink", "memory_default", "File", "Blob", "DOMException", "INVALID", "GONE", "MISMATCH", "MOD_ERR", "SYNTAX", "SECURITY", "DISALLOWED", "fs", "init_memory", "__esmMin", "init_util", "init_config", "config_default", "errors", "fileHandle", "file", "chunk", "blob", "head", "tail", "padding", "name", "writable", "opts", "other", "entry", "isFile", "recursive", "x", "sandbox_exports", "__export", "FileHandle", "FolderHandle", "sandbox_default", "DISALLOWED", "Sink", "init_sandbox", "__esmMin", "init_util", "errors", "writer", "fileEntry", "chunk", "resolve", "reject", "evt", "file", "writable", "other", "opts", "fileWriter", "dir", "reader", "entries", "x", "name", "entry", "err", "e", "kAdapter", "_a", "FileSystemHandle", "FileSystemHandle_default", "init_FileSystemHandle", "__esmMin", "adapter", "__publicField", "mode", "handle", "options", "other", "WritableStream", "FileSystemWritableFileStream", "FileSystemWritableFileStream_default", "init_FileSystemWritableFileStream", "__esmMin", "init_config", "config_default", "args", "w", "p", "position", "size", "data", "writer", "FileSystemFileHandle_exports", "__export", "FileSystemFileHandle", "FileSystemFileHandle_default", "kAdapter", "_a", "init_FileSystemFileHandle", "__esmMin", "init_FileSystemHandle", "init_FileSystemWritableFileStream", "FileSystemHandle_default", "adapter", "__publicField", "options", "FileSystemWritableFileStream_default", "FileSystemDirectoryHandle_exports", "__export", "FileSystemDirectoryHandle", "FileSystemDirectoryHandle_default", "kAdapter", "_a", "init_FileSystemDirectoryHandle", "__esmMin", "init_FileSystemHandle", "FileSystemHandle_default", "adapter", "__publicField", "name", "options", "handle", "FileSystemFileHandle", "_", "entry", "possibleDescendant", "openSet", "current", "path", "util_exports", "__export", "config", "errors", "fromDataTransfer", "getDirHandlesFromInput", "getFileHandlesFromInput", "entries", "memory", "sandbox", "fs", "folder", "entry", "input", "FolderHandle", "FileHandle", "FileSystemDirectoryHandle", "files", "rootName", "root", "file", "path", "name", "dir", "FileSystemFileHandle", "init_util", "__esmMin", "m", "downloader_exports", "__export", "FileHandle", "WritableStream", "TransformStream", "DOMException", "Blob", "GONE", "isSafari", "WRITE", "PULL", "ERROR", "ABORT", "CLOSE", "MessagePortSink", "RemoteWritableStream", "init_downloader", "__esmMin", "init_util", "init_config", "config_default", "errors", "name", "other", "options", "_a", "sw", "link", "ts", "sink", "chunks", "chunk", "blob", "writable", "readablePort", "fileName", "headers", "keepAlive", "ctrl", "reader", "pump", "_", "e", "iframe", "port", "event", "controller", "message", "reason", "resolve", "reject", "channel", "InnerDbConnection", "database", "store", "mode", "obj", "key", "os", "resolve", "reject", "response", "IndexedDbWrapper", "databaseName", "objectStores", "conn", "event", "db", "fileBookmarksStore", "avaloniaDb", "CaretHelper", "element", "position", "options", "_a", "_b", "isBrowser", "debug", "el", "div", "style", "computed", "isInput", "properties", "prop", "height", "outerHeight", "targetHeight", "isFirefox", "span", "coordinates", "InputHelper", "args", "resolve", "reject", "element", "keyDownCallback", "keyUpCallback", "keyDownHandler", "keyUpHandler", "beforeInputCallback", "compositionStartCallback", "compositionUpdateCallback", "compositionEndCallback", "compositionStartHandler", "beforeInputHandler", "ranges", "start", "end", "compositionUpdateHandler", "compositionEndHandler", "pointerMoveCallback", "pointerDownCallback", "pointerUpCallback", "pointerCancelCallback", "wheelCallback", "pointerMoveHandler", "pointerDownHandler", "pointerUpHandler", "pointerCancelHandler", "wheelHandler", "inputCallback", "inputHandler", "dragEvent", "dragHandler", "pointerEvent", "handler", "event", "elementRect", "keyboardRect", "inputElement", "kind", "x", "y", "caretWidth", "caretHeight", "caret", "left", "top", "CaretHelper", "text", "modifiers", "Caniuse", "_a", "userAgentData", "userAgent", "regex1", "regex2", "StorageItem", "handle", "file", "bookmarkId", "wellKnownType", "_a", "type", "item", "e", "name", "destination", "mode", "Caniuse", "connection", "avaloniaDb", "fileBookmarksStore", "StorageItems", "items", "instance", "files", "retItems", "native", "showDirectoryPicker", "options", "input", "p", "resolve", "mod", "showDirectoryPicker_default", "def", "native", "showOpenFilePicker", "options", "opts", "input", "e", "p", "resolve", "m", "showOpenFilePicker_default", "native", "showSaveFilePicker", "options", "FileSystemFileHandle", "FileHandle", "showSaveFilePicker_default", "entry", "FileHandle", "FolderHandle", "FileSystemDirectoryHandle", "FileSystemFileHandle", "init_FileSystemDirectoryHandle", "init_FileSystemFileHandle", "init_FileSystemHandle", "init_FileSystemWritableFileStream", "StorageProvider", "startIn", "preferPolyfill", "_a", "_b", "options", "handle", "showDirectoryPicker_default", "StorageItem", "multiple", "types", "excludeAcceptAllOption", "handles", "showOpenFilePicker_default", "StorageItems", "suggestedName", "showSaveFilePicker_default", "key", "connection", "avaloniaDb", "fileBookmarksStore", "description", "mimeTypes", "extensions", "accept", "a"]
+ "sourcesContent": ["const config = {\n ReadableStream: globalThis.ReadableStream,\n WritableStream: globalThis.WritableStream,\n TransformStream: globalThis.TransformStream,\n DOMException: globalThis.DOMException,\n Blob: globalThis.Blob,\n File: globalThis.File,\n}\n\nexport default config\n", "import { errors } from '../util.js'\nimport config from '../config.js'\n\nconst { File, Blob, DOMException } = config\nconst { INVALID, GONE, MISMATCH, MOD_ERR, SYNTAX, SECURITY, DISALLOWED } = errors\n\nexport class Sink {\n\n /**\n * @param {FileHandle} fileHandle\n * @param {File} file\n */\n constructor (fileHandle, file) {\n this.fileHandle = fileHandle\n this.file = file\n this.size = file.size\n this.position = 0\n }\n\n write (chunk) {\n let file = this.file\n\n if (typeof chunk === 'object') {\n if (chunk.type === 'write') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.position = chunk.position\n if (this.size < chunk.position) {\n this.file = new File(\n [this.file, new ArrayBuffer(chunk.position - this.size)],\n this.file.name,\n this.file\n )\n }\n }\n if (!('data' in chunk)) {\n throw new DOMException(...SYNTAX('write requires a data argument'))\n }\n chunk = chunk.data\n } else if (chunk.type === 'seek') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n if (this.size < chunk.position) {\n throw new DOMException(...INVALID)\n }\n this.position = chunk.position\n return\n } else {\n throw new DOMException(...SYNTAX('seek requires a position argument'))\n }\n } else if (chunk.type === 'truncate') {\n if (Number.isInteger(chunk.size) && chunk.size >= 0) {\n file = chunk.size < this.size\n ? new File([file.slice(0, chunk.size)], file.name, file)\n : new File([file, new Uint8Array(chunk.size - this.size)], file.name)\n\n this.size = file.size\n if (this.position > file.size) {\n this.position = file.size\n }\n this.file = file\n return\n } else {\n throw new DOMException(...SYNTAX('truncate requires a size argument'))\n }\n }\n }\n\n chunk = new Blob([chunk])\n\n let blob = this.file\n // Calc the head and tail fragments\n const head = blob.slice(0, this.position)\n const tail = blob.slice(this.position + chunk.size)\n\n // Calc the padding\n let padding = this.position - head.size\n if (padding < 0) {\n padding = 0\n }\n blob = new File([\n head,\n new Uint8Array(padding),\n chunk,\n tail\n ], blob.name)\n\n this.size = blob.size\n this.position += chunk.size\n\n this.file = blob\n }\n close () {\n if (this.fileHandle._deleted) throw new DOMException(...GONE)\n this.fileHandle._file = this.file\n this.file =\n this.position =\n this.size = null\n if (this.fileHandle.onclose) {\n this.fileHandle.onclose(this.fileHandle)\n }\n }\n}\n\nexport class FileHandle {\n constructor (name = '', file = new File([], name), writable = true) {\n this._file = file\n this.name = name\n this.kind = 'file'\n this._deleted = false\n this.writable = writable\n this.readable = true\n }\n\n async getFile () {\n if (this._deleted) throw new DOMException(...GONE)\n return this._file\n }\n\n async createWritable (opts) {\n if (!this.writable) throw new DOMException(...DISALLOWED)\n if (this._deleted) throw new DOMException(...GONE)\n\n const file = opts.keepExistingData\n ? await this.getFile()\n : new File([], this.name)\n\n return new Sink(this, file)\n }\n\n async isSameEntry (other) {\n return this === other\n }\n\n async _destroy () {\n this._deleted = true\n this._file = null\n }\n}\n\nexport class FolderHandle {\n\n /** @param {string} name */\n constructor (name, writable = true) {\n this.name = name\n this.kind = 'directory'\n this._deleted = false\n /** @type {Object.} */\n this._entries = {}\n this.writable = writable\n this.readable = true\n }\n\n /** @returns {AsyncGenerator<[string, FileHandle | FolderHandle]>} */\n async * entries () {\n if (this._deleted) throw new DOMException(...GONE)\n yield* Object.entries(this._entries)\n }\n\n async isSameEntry (other) {\n return this === other\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n */\n async getDirectoryHandle (name, opts) {\n if (this._deleted) throw new DOMException(...GONE)\n const entry = this._entries[name]\n if (entry) { // entry exist\n if (entry instanceof FileHandle) {\n throw new DOMException(...MISMATCH)\n } else {\n return entry\n }\n } else {\n if (opts.create) {\n return (this._entries[name] = new FolderHandle(name))\n } else {\n throw new DOMException(...GONE)\n }\n }\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n */\n async getFileHandle (name, opts) {\n const entry = this._entries[name]\n const isFile = entry instanceof FileHandle\n if (entry && isFile) return entry\n if (entry && !isFile) throw new DOMException(...MISMATCH)\n if (!entry && !opts.create) throw new DOMException(...GONE)\n if (!entry && opts.create) {\n return (this._entries[name] = new FileHandle(name))\n }\n }\n\n async removeEntry (name, opts) {\n const entry = this._entries[name]\n if (!entry) throw new DOMException(...GONE)\n await entry._destroy(opts.recursive)\n delete this._entries[name]\n }\n\n async _destroy (recursive) {\n for (let x of Object.values(this._entries)) {\n if (!recursive) throw new DOMException(...MOD_ERR)\n await x._destroy(recursive)\n }\n this._entries = {}\n this._deleted = true\n }\n}\n\nconst fs = new FolderHandle('')\n\nexport default () => fs\n", "/* global Blob, DOMException */\n\nimport { errors } from '../util.js'\n\nconst { DISALLOWED } = errors\n\nclass Sink {\n /**\n * @param {FileWriter} writer\n * @param {FileEntry} fileEntry\n */\n constructor (writer, fileEntry) {\n this.writer = writer\n this.fileEntry = fileEntry\n }\n\n /**\n * @param {BlobPart | Object} chunk\n */\n async write (chunk) {\n if (typeof chunk === 'object') {\n if (chunk.type === 'write') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.writer.seek(chunk.position)\n if (this.writer.position !== chunk.position) {\n await new Promise((resolve, reject) => {\n this.writer.onwriteend = resolve\n this.writer.onerror = reject\n this.writer.truncate(chunk.position)\n })\n this.writer.seek(chunk.position)\n }\n }\n if (!('data' in chunk)) {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. write requires a data argument', 'SyntaxError')\n }\n chunk = chunk.data\n } else if (chunk.type === 'seek') {\n if (Number.isInteger(chunk.position) && chunk.position >= 0) {\n this.writer.seek(chunk.position)\n if (this.writer.position !== chunk.position) {\n throw new DOMException('seeking position failed', 'InvalidStateError')\n }\n return\n } else {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. seek requires a position argument', 'SyntaxError')\n }\n } else if (chunk.type === 'truncate') {\n return new Promise(resolve => {\n if (Number.isInteger(chunk.size) && chunk.size >= 0) {\n this.writer.onwriteend = evt => resolve()\n this.writer.truncate(chunk.size)\n } else {\n throw new DOMException('Failed to execute \\'write\\' on \\'UnderlyingSinkBase\\': Invalid params passed. truncate requires a size argument', 'SyntaxError')\n }\n })\n }\n }\n await new Promise((resolve, reject) => {\n this.writer.onwriteend = resolve\n this.writer.onerror = reject\n this.writer.write(new Blob([chunk]))\n })\n }\n\n close () {\n return new Promise(this.fileEntry.file.bind(this.fileEntry))\n }\n}\n\nexport class FileHandle {\n /** @param {FileEntry} file */\n constructor (file, writable = true) {\n this.file = file\n this.kind = 'file'\n this.writable = writable\n this.readable = true\n }\n\n get name () {\n return this.file.name\n }\n\n /**\n * @param {{ file: { toURL: () => string; }; }} other\n */\n isSameEntry (other) {\n return this.file.toURL() === other.file.toURL()\n }\n\n /** @return {Promise} */\n getFile () {\n return new Promise(this.file.file.bind(this.file))\n }\n\n /** @return {Promise} */\n createWritable (opts) {\n if (!this.writable) throw new DOMException(...DISALLOWED)\n\n return new Promise((resolve, reject) =>\n this.file.createWriter(fileWriter => {\n if (opts.keepExistingData === false) {\n fileWriter.onwriteend = evt => resolve(new Sink(fileWriter, this.file))\n fileWriter.truncate(0)\n } else {\n resolve(new Sink(fileWriter, this.file))\n }\n }, reject)\n )\n }\n}\n\nexport class FolderHandle {\n /** @param {DirectoryEntry} dir */\n constructor (dir, writable = true) {\n this.dir = dir\n this.writable = writable\n this.readable = true\n this.kind = 'directory'\n this.name = dir.name\n }\n\n /** @param {FolderHandle} other */\n isSameEntry (other) {\n return this.dir.fullPath === other.dir.fullPath\n }\n\n /** @returns {AsyncGenerator<[string, FileHandle | FolderHandle]>} */\n async * entries () {\n const reader = this.dir.createReader()\n const entries = await new Promise(reader.readEntries.bind(reader))\n for (const x of entries) {\n yield [x.name, x.isFile ? new FileHandle(x, this.writable) : new FolderHandle(x, this.writable)]\n }\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n * @returns {Promise}\n */\n getDirectoryHandle (name, opts) {\n return new Promise((resolve, reject) => {\n this.dir.getDirectory(name, opts, dir => {\n resolve(new FolderHandle(dir))\n }, reject)\n })\n }\n\n /**\n * @param {string} name\n * @param {{ create: boolean; }} opts\n * @returns {Promise}\n */\n getFileHandle (name, opts) {\n return new Promise((resolve, reject) =>\n this.dir.getFile(name, opts, file => resolve(new FileHandle(file)), reject)\n )\n }\n\n /**\n * @param {string} name\n * @param {{ recursive: boolean; }} opts\n */\n async removeEntry (name, opts) {\n /** @type {Error|FolderHandle|FileHandle} */\n const entry = await this.getDirectoryHandle(name, { create: false }).catch(err =>\n err.name === 'TypeMismatchError' ? this.getFileHandle(name, { create: false }) : err\n )\n\n if (entry instanceof Error) throw entry\n\n return new Promise((resolve, reject) => {\n if (entry instanceof FolderHandle) {\n opts.recursive\n ? entry.dir.removeRecursively(() => resolve(), reject)\n : entry.dir.remove(() => resolve(), reject)\n } else if (entry.file) {\n entry.file.remove(() => resolve(), reject)\n }\n })\n }\n}\n\nexport default (opts = {}) => new Promise((resolve, reject) =>\n window.webkitRequestFileSystem(\n opts._persistent, 0,\n e => resolve(new FolderHandle(e.root)),\n reject\n )\n)\n", "const kAdapter = Symbol('adapter')\n\nclass FileSystemHandle {\n /** @type {FileSystemHandle} */\n [kAdapter]\n\n /** @type {string} */\n name\n /** @type {('file'|'directory')} */\n kind\n\n /** @param {FileSystemHandle & {writable}} adapter */\n constructor (adapter) {\n this.kind = adapter.kind\n this.name = adapter.name\n this[kAdapter] = adapter\n }\n\n async queryPermission ({mode = 'read'} = {}) {\n const handle = this[kAdapter]\n\n if (handle.queryPermission) {\n return handle.queryPermission({mode})\n }\n\n if (mode === 'read') {\n return 'granted'\n } else if (mode === 'readwrite') {\n return handle.writable ? 'granted' : 'denied'\n } else {\n throw new TypeError(`Mode ${mode} must be 'read' or 'readwrite'`)\n }\n }\n\n async requestPermission ({mode = 'read'} = {}) {\n const handle = this[kAdapter]\n if (handle.requestPermission) {\n return handle.requestPermission({mode})\n }\n\n if (mode === 'read') {\n return 'granted'\n } else if (mode === 'readwrite') {\n return handle.writable ? 'granted' : 'denied'\n } else {\n throw new TypeError(`Mode ${mode} must be 'read' or 'readwrite'`)\n }\n }\n\n /**\n * Attempts to remove the entry represented by handle from the underlying file system.\n *\n * @param {object} options\n * @param {boolean} [options.recursive=false]\n */\n async remove (options = {}) {\n await this[kAdapter].remove(options)\n }\n\n /**\n * @param {FileSystemHandle} other\n */\n async isSameEntry (other) {\n if (this === other) return true\n if (\n (!other) ||\n (typeof other !== 'object') ||\n (this.kind !== other.kind) ||\n (!other[kAdapter])\n ) return false\n return this[kAdapter].isSameEntry(other[kAdapter])\n }\n}\n\nObject.defineProperty(FileSystemHandle.prototype, Symbol.toStringTag, {\n value: 'FileSystemHandle',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nexport default FileSystemHandle\nexport { FileSystemHandle }\n", "import config from './config.js'\n\nconst { WritableStream } = config\n\nclass FileSystemWritableFileStream extends WritableStream {\n constructor (...args) {\n super(...args)\n\n // Stupid Safari hack to extend native classes\n // https://bugs.webkit.org/show_bug.cgi?id=226201\n Object.setPrototypeOf(this, FileSystemWritableFileStream.prototype)\n\n /** @private */\n this._closed = false\n }\n\n close () {\n this._closed = true\n const w = this.getWriter()\n const p = w.close()\n w.releaseLock()\n return p\n // return super.close ? super.close() : this.getWriter().close()\n }\n\n /** @param {number} position */\n seek (position) {\n return this.write({ type: 'seek', position })\n }\n\n /** @param {number} size */\n truncate (size) {\n return this.write({ type: 'truncate', size })\n }\n\n write (data) {\n if (this._closed) {\n return Promise.reject(new TypeError('Cannot write to a CLOSED writable stream'))\n }\n\n const writer = this.getWriter()\n const p = writer.write(data)\n writer.releaseLock()\n return p\n }\n}\n\nObject.defineProperty(FileSystemWritableFileStream.prototype, Symbol.toStringTag, {\n value: 'FileSystemWritableFileStream',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nObject.defineProperties(FileSystemWritableFileStream.prototype, {\n close: { enumerable: true },\n seek: { enumerable: true },\n truncate: { enumerable: true },\n write: { enumerable: true }\n})\n\nexport default FileSystemWritableFileStream\nexport { FileSystemWritableFileStream }\n", "import FileSystemHandle from './FileSystemHandle.js'\nimport FileSystemWritableFileStream from './FileSystemWritableFileStream.js'\n\nconst kAdapter = Symbol('adapter')\n\nclass FileSystemFileHandle extends FileSystemHandle {\n /** @type {FileSystemFileHandle} */\n [kAdapter]\n\n constructor (adapter) {\n super(adapter)\n this[kAdapter] = adapter\n }\n\n /**\n * @param {Object} [options={}]\n * @param {boolean} [options.keepExistingData]\n * @returns {Promise}\n */\n async createWritable (options = {}) {\n return new FileSystemWritableFileStream(\n await this[kAdapter].createWritable(options)\n )\n }\n\n /**\n * @returns {Promise}\n */\n async getFile () {\n return this[kAdapter].getFile()\n }\n}\n\nObject.defineProperty(FileSystemFileHandle.prototype, Symbol.toStringTag, {\n value: 'FileSystemFileHandle',\n writable: false,\n enumerable: false,\n configurable: true\n})\n\nObject.defineProperties(FileSystemFileHandle.prototype, {\n createWritable: { enumerable: true },\n getFile: { enumerable: true }\n})\n\nexport default FileSystemFileHandle\nexport { FileSystemFileHandle }\n", "import FileSystemHandle from './FileSystemHandle.js'\n\nconst kAdapter = Symbol('adapter')\n\nclass FileSystemDirectoryHandle extends FileSystemHandle {\n /** @type {FileSystemDirectoryHandle} */\n [kAdapter]\n\n constructor (adapter) {\n super(adapter)\n this[kAdapter] = adapter\n }\n\n /**\n * @param {string} name Name of the directory\n * @param {object} [options]\n * @param {boolean} [options.create] create the directory if don't exist\n * @returns {Promise}\n */\n async getDirectoryHandle (name, options = {}) {\n if (name === '') {\n throw new TypeError(`Name can't be an empty string.`)\n }\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.create = !!options.create\n const handle = await this[kAdapter].getDirectoryHandle(name, options)\n return new FileSystemDirectoryHandle(handle)\n }\n\n /** @returns {AsyncGenerator<[string, FileSystemHandle | FileSystemDirectoryHandle]>} */\n async * entries () {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n\n for await (const [_, entry] of this[kAdapter].entries())\n yield [entry.name, entry.kind === 'file'\n ? new FileSystemFileHandle(entry)\n : new FileSystemDirectoryHandle(entry)]\n }\n\n /** @deprecated use .entries() instead */\n async * getEntries() {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n console.warn('deprecated, use .entries() instead')\n for await (let entry of this[kAdapter].entries())\n yield entry.kind === 'file'\n ? new FileSystemFileHandle(entry)\n : new FileSystemDirectoryHandle(entry)\n }\n\n /**\n * @param {string} name Name of the file\n * @param {object} [options]\n * @param {boolean} [options.create] create the file if don't exist\n */\n async getFileHandle (name, options = {}) {\n const {FileSystemFileHandle} = await import('./FileSystemFileHandle.js')\n if (name === '') throw new TypeError(`Name can't be an empty string.`)\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.create = !!options.create\n const handle = await this[kAdapter].getFileHandle(name, options)\n return new FileSystemFileHandle(handle)\n }\n\n /**\n * @param {string} name\n * @param {object} [options]\n * @param {boolean} [options.recursive]\n */\n async removeEntry (name, options = {}) {\n if (name === '') {\n throw new TypeError(`Name can't be an empty string.`)\n }\n if (name === '.' || name === '..' || name.includes('/')) {\n throw new TypeError(`Name contains invalid characters.`)\n }\n options.recursive = !!options.recursive // cuz node's fs.rm require boolean\n return this[kAdapter].removeEntry(name, options)\n }\n\n async resolve (possibleDescendant) {\n if (await possibleDescendant.isSameEntry(this)) {\n return []\n }\n\n const openSet = [{ handle: this, path: [] }]\n\n while (openSet.length) {\n let { handle: current, path } = openSet.pop()\n for await (const entry of current.values()) {\n if (await entry.isSameEntry(possibleDescendant)) {\n return [...path, entry.name]\n }\n if (entry.kind === 'directory') {\n openSet.push({ handle: entry, path: [...path, entry.name] })\n }\n }\n }\n\n return null\n }\n\n async * keys () {\n for await (const [name] of this[kAdapter].entries())\n yield name\n }\n\n async * values () {\n for await (const [_, entry] of this)\n yield entry\n }\n\n [Symbol.asyncIterator]() {\n return this.entries()\n }\n}\n\nObject.defineProperty(FileSystemDirectoryHandle.prototype, Symbol.toStringTag, {\n\tvalue: 'FileSystemDirectoryHandle',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n})\n\nObject.defineProperties(FileSystemDirectoryHandle.prototype, {\n\tgetDirectoryHandle: { enumerable: true },\n\tentries: { enumerable: true },\n\tgetFileHandle: { enumerable: true },\n\tremoveEntry: { enumerable: true }\n})\n\nexport default FileSystemDirectoryHandle\nexport { FileSystemDirectoryHandle }\n", "export const errors = {\n INVALID: ['seeking position failed.', 'InvalidStateError'],\n GONE: ['A requested file or directory could not be found at the time an operation was processed.', 'NotFoundError'],\n MISMATCH: ['The path supplied exists, but was not an entry of requested type.', 'TypeMismatchError'],\n MOD_ERR: ['The object can not be modified in this way.', 'InvalidModificationError'],\n SYNTAX: m => [`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${m}`, 'SyntaxError'],\n SECURITY: ['It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.', 'SecurityError'],\n DISALLOWED: ['The request is not allowed by the user agent or the platform in the current context.', 'NotAllowedError']\n}\n\nexport const config = {\n writable: globalThis.WritableStream\n}\n\nexport async function fromDataTransfer (entries) {\n console.warn('deprecated fromDataTransfer - use `dt.items[0].getAsFileSystemHandle()` instead')\n const [memory, sandbox, fs] = await Promise.all([\n import('./adapters/memory.js'),\n import('./adapters/sandbox.js'),\n import('./FileSystemDirectoryHandle.js')\n ])\n\n const folder = new memory.FolderHandle('', false)\n folder._entries = entries.map(entry => entry.isFile\n ? new sandbox.FileHandle(entry, false)\n : new sandbox.FolderHandle(entry, false)\n )\n\n return new fs.FileSystemDirectoryHandle(folder)\n}\n\nexport async function getDirHandlesFromInput (input) {\n const { FolderHandle, FileHandle } = await import('./adapters/memory.js')\n const { FileSystemDirectoryHandle } = await import('./FileSystemDirectoryHandle.js')\n\n const files = Array.from(input.files)\n const rootName = files[0].webkitRelativePath.split('/', 1)[0]\n const root = new FolderHandle(rootName, false)\n\n files.forEach(file => {\n const path = file.webkitRelativePath.split('/')\n path.shift()\n const name = path.pop()\n\n const dir = path.reduce((dir, path) => {\n if (!dir._entries[path]) dir._entries[path] = new FolderHandle(path, false)\n return dir._entries[path]\n }, root)\n\n dir._entries[name] = new FileHandle(file.name, file, false)\n })\n\n return new FileSystemDirectoryHandle(root)\n}\n\nexport async function getFileHandlesFromInput (input) {\n const { FileHandle } = await import('./adapters/memory.js')\n const { FileSystemFileHandle } = await import('./FileSystemFileHandle.js')\n\n return Array.from(input.files).map(file =>\n new FileSystemFileHandle(new FileHandle(file.name, file, false))\n )\n}\n", "import { errors } from '../util.js'\nimport config from '../config.js'\n\nconst {\n WritableStream,\n TransformStream,\n DOMException,\n Blob\n} = config\n\nconst { GONE } = errors\n// @ts-ignore\nconst isSafari = /constructor/i.test(window.HTMLElement) || window.safari || window.WebKitPoint\n\nexport class FileHandle {\n constructor (name = 'unkown') {\n this.name = name\n this.kind = 'file'\n }\n\n async getFile () {\n throw new DOMException(...GONE)\n }\n\n async isSameEntry(other) {\n return this === other\n }\n\n /**\n * @param {object} [options={}]\n */\n async createWritable (options = {}) {\n const sw = await navigator.serviceWorker?.getRegistration()\n const link = document.createElement('a')\n const ts = new TransformStream()\n const sink = ts.writable\n\n link.download = this.name\n\n if (isSafari || !sw) {\n /** @type {Blob[]} */\n let chunks = []\n ts.readable.pipeTo(new WritableStream({\n write (chunk) {\n chunks.push(new Blob([chunk]))\n },\n close () {\n const blob = new Blob(chunks, { type: 'application/octet-stream; charset=utf-8' })\n chunks = []\n link.href = URL.createObjectURL(blob)\n link.click()\n setTimeout(() => URL.revokeObjectURL(link.href), 10000)\n }\n }))\n } else {\n const { writable, readablePort } = new RemoteWritableStream(WritableStream)\n // Make filename RFC5987 compatible\n const fileName = encodeURIComponent(this.name).replace(/['()]/g, escape).replace(/\\*/g, '%2A')\n const headers = {\n 'content-disposition': \"attachment; filename*=UTF-8''\" + fileName,\n 'content-type': 'application/octet-stream; charset=utf-8',\n ...(options.size ? { 'content-length': options.size } : {})\n }\n\n const keepAlive = setTimeout(() => sw.active.postMessage(0), 10000)\n\n ts.readable.pipeThrough(new TransformStream({\n transform (chunk, ctrl) {\n if (chunk instanceof Uint8Array) return ctrl.enqueue(chunk)\n const reader = new Response(chunk).body.getReader()\n const pump = _ => reader.read().then(e => e.done ? 0 : pump(ctrl.enqueue(e.value)))\n return pump()\n }\n })).pipeTo(writable).finally(() => {\n clearInterval(keepAlive)\n })\n\n // Transfer the stream to service worker\n sw.active.postMessage({\n url: sw.scope + fileName,\n headers,\n readablePort\n }, [readablePort])\n\n // Trigger the download with a hidden iframe\n const iframe = document.createElement('iframe')\n iframe.hidden = true\n iframe.src = sw.scope + fileName\n document.body.appendChild(iframe)\n }\n\n return sink.getWriter()\n }\n}\n\nconst WRITE = 0\nconst PULL = 0\nconst ERROR = 1\nconst ABORT = 1\nconst CLOSE = 2\n\nclass MessagePortSink {\n /** @param {MessagePort} port */\n constructor (port) {\n port.onmessage = event => this._onMessage(event.data)\n this._port = port\n this._resetReady()\n }\n\n start (controller) {\n this._controller = controller\n // Apply initial backpressure\n return this._readyPromise\n }\n\n write (chunk) {\n const message = { type: WRITE, chunk }\n\n // Send chunk\n this._port.postMessage(message, [chunk.buffer])\n\n // Assume backpressure after every write, until sender pulls\n this._resetReady()\n\n // Apply backpressure\n return this._readyPromise\n }\n\n close () {\n this._port.postMessage({ type: CLOSE })\n this._port.close()\n }\n\n abort (reason) {\n this._port.postMessage({ type: ABORT, reason })\n this._port.close()\n }\n\n _onMessage (message) {\n if (message.type === PULL) this._resolveReady()\n if (message.type === ERROR) this._onError(message.reason)\n }\n\n _onError (reason) {\n this._controller.error(reason)\n this._rejectReady(reason)\n this._port.close()\n }\n\n _resetReady () {\n this._readyPromise = new Promise((resolve, reject) => {\n this._readyResolve = resolve\n this._readyReject = reject\n })\n this._readyPending = true\n }\n\n _resolveReady () {\n this._readyResolve()\n this._readyPending = false\n }\n\n _rejectReady (reason) {\n if (!this._readyPending) this._resetReady()\n this._readyPromise.catch(() => {})\n this._readyReject(reason)\n this._readyPending = false\n }\n}\n\nclass RemoteWritableStream {\n constructor (WritableStream) {\n const channel = new MessageChannel()\n this.readablePort = channel.port1\n this.writable = new WritableStream(\n new MessagePortSink(channel.port2)\n )\n }\n}\n", "class InnerDbConnection {\r\n constructor(private readonly database: IDBDatabase) { }\r\n\r\n private openStore(store: string, mode: IDBTransactionMode): IDBObjectStore {\r\n const tx = this.database.transaction(store, mode);\r\n return tx.objectStore(store);\r\n }\r\n\r\n public async put(store: string, obj: any, key?: IDBValidKey): Promise {\r\n const os = this.openStore(store, \"readwrite\");\r\n\r\n return await new Promise((resolve, reject) => {\r\n const response = os.put(obj, key);\r\n response.onsuccess = () => {\r\n resolve(response.result);\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public get(store: string, key: IDBValidKey): any {\r\n const os = this.openStore(store, \"readonly\");\r\n\r\n return new Promise((resolve, reject) => {\r\n const response = os.get(key);\r\n response.onsuccess = () => {\r\n resolve(response.result);\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public async delete(store: string, key: IDBValidKey): Promise {\r\n const os = this.openStore(store, \"readwrite\");\r\n\r\n return await new Promise((resolve, reject) => {\r\n const response = os.delete(key);\r\n response.onsuccess = () => {\r\n resolve();\r\n };\r\n response.onerror = () => {\r\n reject(response.error);\r\n };\r\n });\r\n }\r\n\r\n public close() {\r\n this.database.close();\r\n }\r\n}\r\n\r\nclass IndexedDbWrapper {\r\n constructor(private readonly databaseName: string, private readonly objectStores: [string]) {\r\n }\r\n\r\n public async connect(): Promise {\r\n const conn = window.indexedDB.open(this.databaseName, 1);\r\n\r\n conn.onupgradeneeded = event => {\r\n const db = (event.target as IDBRequest).result;\r\n this.objectStores.forEach(store => {\r\n db.createObjectStore(store);\r\n });\r\n };\r\n\r\n return await new Promise((resolve, reject) => {\r\n conn.onsuccess = event => {\r\n resolve(new InnerDbConnection((event.target as IDBRequest).result));\r\n };\r\n conn.onerror = event => {\r\n reject((event.target as IDBRequest).error);\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport const fileBookmarksStore: string = \"fileBookmarks\";\r\nexport const avaloniaDb = new IndexedDbWrapper(\"AvaloniaDb\", [\r\n fileBookmarksStore\r\n]);\r\n", "// Based on https://github.com/component/textarea-caret-position/blob/master/index.js\r\nexport class CaretHelper {\r\n public static getCaretCoordinates(\r\n element: HTMLInputElement | HTMLTextAreaElement,\r\n position: number,\r\n options?: { debug: boolean }\r\n ) {\r\n if (!isBrowser) {\r\n throw new Error(\r\n \"textarea-caret-position#getCaretCoordinates should only be called in a browser\"\r\n );\r\n }\r\n\r\n const debug = options?.debug ?? false;\r\n if (debug) {\r\n const el = document.querySelector(\r\n \"#input-textarea-caret-position-mirror-div\"\r\n );\r\n if (el) el.parentNode?.removeChild(el);\r\n }\r\n\r\n // The mirror div will replicate the textarea's style\r\n const div = document.createElement(\"div\");\r\n div.id = \"input-textarea-caret-position-mirror-div\";\r\n document.body.appendChild(div);\r\n\r\n const style = div.style;\r\n const computed = window.getComputedStyle\r\n ? window.getComputedStyle(element)\r\n : ((element as any).currentStyle as CSSStyleDeclaration); // currentStyle for IE < 9\r\n const isInput = element.nodeName === \"INPUT\";\r\n\r\n // Default textarea styles\r\n style.whiteSpace = \"pre-wrap\";\r\n if (!isInput) style.wordWrap = \"break-word\"; // only for textarea-s\r\n\r\n // Position off-screen\r\n style.position = \"absolute\"; // required to return coordinates properly\r\n if (!debug) style.visibility = \"hidden\"; // not 'display: none' because we want rendering\r\n\r\n // Transfer the element's properties to the div\r\n properties.forEach((prop: string) => {\r\n if (isInput && prop === \"lineHeight\") {\r\n // Special case for s because text is rendered centered and line height may be != height\r\n if (computed.boxSizing === \"border-box\") {\r\n const height = parseInt(computed.height);\r\n const outerHeight =\r\n parseInt(computed.paddingTop) +\r\n parseInt(computed.paddingBottom) +\r\n parseInt(computed.borderTopWidth) +\r\n parseInt(computed.borderBottomWidth);\r\n const targetHeight = outerHeight + parseInt(computed.lineHeight);\r\n if (height > targetHeight) {\r\n style.lineHeight = `${height - outerHeight}px`;\r\n } else if (height === targetHeight) {\r\n style.lineHeight = computed.lineHeight;\r\n } else {\r\n style.lineHeight = \"0\";\r\n }\r\n } else {\r\n style.lineHeight = computed.height;\r\n }\r\n } else {\r\n (style as any)[prop] = (computed as any)[prop];\r\n }\r\n });\r\n\r\n if (isFirefox) {\r\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\r\n if (element.scrollHeight > parseInt(computed.height)) {\r\n style.overflowY = \"scroll\";\r\n }\r\n } else {\r\n style.overflow = \"hidden\"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\r\n }\r\n\r\n div.textContent = element.value.substring(0, position);\r\n // The second special handling for input type=\"text\" vs textarea:\r\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\r\n if (isInput) div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\r\n\r\n const span = document.createElement(\"span\");\r\n // Wrapping must be replicated *exactly*, including when a long word gets\r\n // onto the next line, with whitespace at the end of the line before (#7).\r\n // The *only* reliable way to do that is to copy the *entire* rest of the\r\n // textarea's content into the created at the caret position.\r\n // For inputs, just '.' would be enough, but no need to bother.\r\n span.textContent = element.value.substring(position) || \".\"; // || because a completely empty faux span doesn't render at all\r\n div.appendChild(span);\r\n\r\n const coordinates = {\r\n top: span.offsetTop + parseInt(computed.borderTopWidth),\r\n left: span.offsetLeft + parseInt(computed.borderLeftWidth),\r\n height: parseInt(computed.lineHeight)\r\n };\r\n\r\n if (debug) {\r\n span.style.backgroundColor = \"#aaa\";\r\n } else {\r\n document.body.removeChild(div);\r\n }\r\n\r\n return coordinates;\r\n }\r\n}\r\n\r\nconst properties = [\r\n \"direction\", // RTL support\r\n \"boxSizing\",\r\n \"width\", // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\r\n \"height\",\r\n \"overflowX\",\r\n \"overflowY\", // copy the scrollbar for IE\r\n\r\n \"borderTopWidth\",\r\n \"borderRightWidth\",\r\n \"borderBottomWidth\",\r\n \"borderLeftWidth\",\r\n \"borderStyle\",\r\n\r\n \"paddingTop\",\r\n \"paddingRight\",\r\n \"paddingBottom\",\r\n \"paddingLeft\",\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n \"fontStyle\",\r\n \"fontVariant\",\r\n \"fontWeight\",\r\n \"fontStretch\",\r\n \"fontSize\",\r\n \"fontSizeAdjust\",\r\n \"lineHeight\",\r\n \"fontFamily\",\r\n\r\n \"textAlign\",\r\n \"textTransform\",\r\n \"textIndent\",\r\n \"textDecoration\", // might not make a difference, but better be safe\r\n\r\n \"letterSpacing\",\r\n \"wordSpacing\",\r\n\r\n \"tabSize\",\r\n \"MozTabSize\"\r\n];\r\n\r\nconst isBrowser = typeof window !== \"undefined\";\r\nconst isFirefox = isBrowser && (window as any).mozInnerScreenX != null;\r\n", "import { CaretHelper } from \"./caretHelper\";\r\n\r\nenum RawInputModifiers {\r\n None = 0,\r\n Alt = 1,\r\n Control = 2,\r\n Shift = 4,\r\n Meta = 8,\r\n\r\n LeftMouseButton = 16,\r\n RightMouseButton = 32,\r\n MiddleMouseButton = 64,\r\n XButton1MouseButton = 128,\r\n XButton2MouseButton = 256,\r\n KeyboardMask = Alt | Control | Shift | Meta,\r\n\r\n PenInverted = 512,\r\n PenEraser = 1024,\r\n PenBarrelButton = 2048\r\n}\r\n\r\n/*\r\n* This is a hack to handle Mozilla clipboard events in a more convinient way for framework users.\r\n* In the browser, events go in order KeyDown -> Paste -> KeyUp.\r\n* On KeyDown we trigger Avalonia handlers, which might execute readClipboardText.\r\n* When readClipboardText was executed, we mark ClipboardState as Pending and setup clipboard promise,\r\n* which will un-handle KeyDown event, basically allowing browser to pass a Paste event properly.\r\n* On actual Paste event we execute promise callbacks, resuming async operation, and returning pasted text to the app.\r\n* Note #1, on every KeyUp event we will reset all the state and reject pending promises if any, as this event it expected to come after Paste.\r\n* Note #2, whole this code will be executed only on legacy browsers like Mozilla, where clipboard.readText is not available.\r\n* Note #3, with all of these hacks Clipboard.ReadText will still work only on actual \"paste\" gesture initiated by user.\r\n* */\r\nenum ClipboardState {\r\n None,\r\n Ready,\r\n Pending\r\n}\r\n\r\nexport class InputHelper {\r\n static clipboardState: ClipboardState = ClipboardState.None;\r\n static resolveClipboard?: any;\r\n static rejectClipboard?: any;\r\n\r\n public static initializeBackgroundHandlers() {\r\n if (this.clipboardState !== ClipboardState.None) {\r\n return;\r\n }\r\n\r\n globalThis.addEventListener(\"paste\", (args: any) => {\r\n if (this.clipboardState === ClipboardState.Pending) {\r\n this.resolveClipboard(args.clipboardData.getData(\"text\"));\r\n }\r\n });\r\n this.clipboardState = ClipboardState.Ready;\r\n }\r\n\r\n public static async readClipboardText(): Promise {\r\n if (globalThis.navigator.clipboard.readText) {\r\n return await globalThis.navigator.clipboard.readText();\r\n } else {\r\n try {\r\n return await new Promise((resolve, reject) => {\r\n this.clipboardState = ClipboardState.Pending;\r\n this.resolveClipboard = resolve;\r\n this.rejectClipboard = reject;\r\n });\r\n } finally {\r\n this.clipboardState = ClipboardState.Ready;\r\n this.resolveClipboard = null;\r\n this.rejectClipboard = null;\r\n }\r\n }\r\n }\r\n\r\n public static subscribeKeyEvents(\r\n element: HTMLInputElement,\r\n keyDownCallback: (code: string, key: string, modifiers: string) => boolean,\r\n keyUpCallback: (code: string, key: string, modifiers: string) => boolean) {\r\n const keyDownHandler = (args: KeyboardEvent) => {\r\n if (keyDownCallback(args.code, args.key, this.getModifiers(args))) {\r\n if (this.clipboardState !== ClipboardState.Pending) {\r\n args.preventDefault();\r\n }\r\n }\r\n };\r\n element.addEventListener(\"keydown\", keyDownHandler);\r\n\r\n const keyUpHandler = (args: KeyboardEvent) => {\r\n if (keyUpCallback(args.code, args.key, this.getModifiers(args))) {\r\n args.preventDefault();\r\n }\r\n if (this.rejectClipboard) {\r\n this.rejectClipboard();\r\n }\r\n };\r\n\r\n element.addEventListener(\"keyup\", keyUpHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"keydown\", keyDownHandler);\r\n element.removeEventListener(\"keyup\", keyUpHandler);\r\n };\r\n }\r\n\r\n public static subscribeTextEvents(\r\n element: HTMLInputElement,\r\n beforeInputCallback: (args: InputEvent, start: number, end: number) => boolean,\r\n compositionStartCallback: (args: CompositionEvent) => boolean,\r\n compositionUpdateCallback: (args: CompositionEvent) => boolean,\r\n compositionEndCallback: (args: CompositionEvent) => boolean) {\r\n const compositionStartHandler = (args: CompositionEvent) => {\r\n if (compositionStartCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionstart\", compositionStartHandler);\r\n\r\n const beforeInputHandler = (args: InputEvent) => {\r\n const ranges = args.getTargetRanges();\r\n let start = -1;\r\n let end = -1;\r\n if (ranges.length > 0) {\r\n start = ranges[0].startOffset;\r\n end = ranges[0].endOffset;\r\n }\r\n\r\n if (args.inputType === \"insertCompositionText\") {\r\n start = 2;\r\n end = start + 2;\r\n }\r\n if (beforeInputCallback(args, start, end)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"beforeinput\", beforeInputHandler);\r\n\r\n const compositionUpdateHandler = (args: CompositionEvent) => {\r\n if (compositionUpdateCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n\r\n const compositionEndHandler = (args: CompositionEvent) => {\r\n if (compositionEndCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionend\", compositionEndHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"compositionstart\", compositionStartHandler);\r\n element.removeEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n element.removeEventListener(\"compositionend\", compositionEndHandler);\r\n };\r\n }\r\n\r\n public static subscribePointerEvents(\r\n element: HTMLInputElement,\r\n pointerMoveCallback: (args: PointerEvent) => boolean,\r\n pointerDownCallback: (args: PointerEvent) => boolean,\r\n pointerUpCallback: (args: PointerEvent) => boolean,\r\n pointerCancelCallback: (args: PointerEvent) => boolean,\r\n wheelCallback: (args: WheelEvent) => boolean\r\n ) {\r\n const pointerMoveHandler = (args: PointerEvent) => {\r\n pointerMoveCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerDownHandler = (args: PointerEvent) => {\r\n pointerDownCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerUpHandler = (args: PointerEvent) => {\r\n pointerUpCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerCancelHandler = (args: PointerEvent) => {\r\n pointerCancelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const wheelHandler = (args: WheelEvent) => {\r\n wheelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n element.addEventListener(\"pointermove\", pointerMoveHandler);\r\n element.addEventListener(\"pointerdown\", pointerDownHandler);\r\n element.addEventListener(\"pointerup\", pointerUpHandler);\r\n element.addEventListener(\"wheel\", wheelHandler);\r\n element.addEventListener(\"pointercancel\", pointerCancelHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"pointerover\", pointerMoveHandler);\r\n element.removeEventListener(\"pointerdown\", pointerDownHandler);\r\n element.removeEventListener(\"pointerup\", pointerUpHandler);\r\n element.removeEventListener(\"pointercancel\", pointerCancelHandler);\r\n element.removeEventListener(\"wheel\", wheelHandler);\r\n };\r\n }\r\n\r\n public static subscribeInputEvents(\r\n element: HTMLInputElement,\r\n inputCallback: (value: string) => boolean\r\n ) {\r\n const inputHandler = (args: Event) => {\r\n if (inputCallback((args as any).value)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"input\", inputHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"input\", inputHandler);\r\n };\r\n }\r\n\r\n public static subscribeDropEvents(\r\n element: HTMLInputElement,\r\n dragEvent: (args: any) => boolean\r\n ) {\r\n const dragHandler = (args: Event) => {\r\n if (dragEvent(args as any)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"dragover\", dragHandler);\r\n element.addEventListener(\"dragenter\", dragHandler);\r\n element.addEventListener(\"dragleave\", dragHandler);\r\n element.addEventListener(\"drop\", dragHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"dragover\", dragHandler);\r\n element.removeEventListener(\"dragenter\", dragHandler);\r\n element.removeEventListener(\"dragleave\", dragHandler);\r\n element.removeEventListener(\"drop\", dragHandler);\r\n };\r\n }\r\n\r\n public static getCoalescedEvents(pointerEvent: PointerEvent): PointerEvent[] {\r\n return pointerEvent.getCoalescedEvents();\r\n }\r\n\r\n public static subscribeKeyboardGeometryChange(\r\n element: HTMLInputElement,\r\n handler: (args: any) => boolean) {\r\n if (\"virtualKeyboard\" in navigator) {\r\n // (navigator as any).virtualKeyboard.overlaysContent = true;\r\n (navigator as any).virtualKeyboard.addEventListener(\"geometrychange\", (event: any) => {\r\n const elementRect = element.getBoundingClientRect();\r\n const keyboardRect = event.target.boundingRect as DOMRect;\r\n handler({\r\n x: keyboardRect.x - elementRect.x,\r\n y: keyboardRect.y - elementRect.y,\r\n width: keyboardRect.width,\r\n height: keyboardRect.height\r\n });\r\n });\r\n }\r\n }\r\n\r\n public static subscribeVisibilityChange(\r\n handler: (state: boolean) => void): boolean {\r\n document.addEventListener(\"visibilitychange\", () => {\r\n handler(document.visibilityState === \"visible\");\r\n });\r\n return document.visibilityState === \"visible\";\r\n }\r\n\r\n public static clearInput(inputElement: HTMLInputElement) {\r\n inputElement.value = \"\";\r\n }\r\n\r\n public static focusElement(inputElement: HTMLElement) {\r\n inputElement.focus();\r\n }\r\n\r\n public static setCursor(inputElement: HTMLInputElement, kind: string) {\r\n if (kind === \"default\") {\r\n inputElement.style.removeProperty(\"cursor\");\r\n } else {\r\n inputElement.style.cursor = kind;\r\n }\r\n }\r\n\r\n public static setBounds(inputElement: HTMLInputElement, x: number, y: number, caretWidth: number, caretHeight: number, caret: number) {\r\n inputElement.style.left = (x).toFixed(0) + \"px\";\r\n inputElement.style.top = (y).toFixed(0) + \"px\";\r\n\r\n const { left, top } = CaretHelper.getCaretCoordinates(inputElement, caret);\r\n\r\n inputElement.style.left = (x - left).toFixed(0) + \"px\";\r\n inputElement.style.top = (y - top).toFixed(0) + \"px\";\r\n }\r\n\r\n public static hide(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"none\";\r\n }\r\n\r\n public static show(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"block\";\r\n }\r\n\r\n public static setSurroundingText(inputElement: HTMLInputElement, text: string, start: number, end: number) {\r\n if (!inputElement) {\r\n return;\r\n }\r\n\r\n inputElement.value = text;\r\n inputElement.setSelectionRange(start, end);\r\n inputElement.style.width = \"20px\";\r\n inputElement.style.width = `${inputElement.scrollWidth}px`;\r\n }\r\n\r\n private static getModifiers(args: KeyboardEvent): string {\r\n let modifiers = RawInputModifiers.None;\r\n\r\n if (args.ctrlKey) { modifiers |= RawInputModifiers.Control; }\r\n if (args.altKey) { modifiers |= RawInputModifiers.Alt; }\r\n if (args.shiftKey) { modifiers |= RawInputModifiers.Shift; }\r\n if (args.metaKey) { modifiers |= RawInputModifiers.Meta; }\r\n\r\n return modifiers.toString();\r\n }\r\n\r\n public static setPointerCapture(containerElement: HTMLInputElement, pointerId: number): void {\r\n containerElement.setPointerCapture(pointerId);\r\n }\r\n\r\n public static releasePointerCapture(containerElement: HTMLInputElement, pointerId: number): void {\r\n if (containerElement.hasPointerCapture(pointerId)) {\r\n containerElement.releasePointerCapture(pointerId);\r\n }\r\n }\r\n}\r\n", "export class Caniuse {\r\n public static hasNativeFilePicker(): boolean {\r\n return \"showSaveFilePicker\" in globalThis;\r\n }\r\n\r\n public static isMobile(): boolean {\r\n const userAgentData = (globalThis.navigator as any)?.userAgentData;\r\n if (userAgentData) {\r\n return userAgentData.mobile;\r\n }\r\n\r\n const userAgent = navigator.userAgent;\r\n const regex1 = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;\r\n const regex2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;\r\n return regex1.test(userAgent) || regex2.test(userAgent.substr(0, 4));\r\n }\r\n\r\n public static isTv(): boolean {\r\n return navigator.userAgent.includes(\"SmartTV\");\r\n }\r\n}\r\n", "import { avaloniaDb, fileBookmarksStore } from \"./indexedDb\";\r\nimport { FileSystemFileHandle, FileSystemDirectoryHandle, FileSystemWritableFileStream } from \"native-file-system-adapter\";\r\nimport { Caniuse } from \"../avalonia\";\r\n\r\nexport class StorageItem {\r\n private constructor(\r\n public handle?: FileSystemFileHandle | FileSystemDirectoryHandle,\r\n private readonly file?: File,\r\n private readonly bookmarkId?: string,\r\n public wellKnownType?: WellKnownDirectory\r\n ) {\r\n }\r\n\r\n public get name(): string {\r\n if (this.handle) {\r\n return this.handle.name;\r\n }\r\n if (this.file) {\r\n return this.file.name;\r\n }\r\n return this.wellKnownType ?? \"\";\r\n }\r\n\r\n public get kind(): \"file\" | \"directory\" {\r\n if (this.handle) {\r\n return this.handle.kind;\r\n }\r\n if (this.file) {\r\n return \"file\";\r\n }\r\n return \"directory\";\r\n }\r\n\r\n public static createFromHandle(handle: FileSystemFileHandle | FileSystemDirectoryHandle, bookmarkId?: string) {\r\n return new StorageItem(handle, undefined, bookmarkId, undefined);\r\n }\r\n\r\n public static createFromFile(file: File) {\r\n return new StorageItem(undefined, file, undefined, undefined);\r\n }\r\n\r\n public static createWellKnownDirectory(type: WellKnownDirectory) {\r\n return new StorageItem(undefined, undefined, undefined, type);\r\n }\r\n\r\n public static async openRead(item: StorageItem): Promise {\r\n if (item.file) {\r\n return item.file;\r\n }\r\n\r\n if (!item.handle || item.kind !== \"file\") {\r\n throw new Error(\"StorageItem is not a file\");\r\n }\r\n\r\n await item.verityPermissions(\"read\");\r\n\r\n const file = await (item.handle as FileSystemFileHandle).getFile();\r\n return file;\r\n }\r\n\r\n public static async openWrite(item: StorageItem): Promise {\r\n if (!item.handle || item.kind !== \"file\") {\r\n throw new Error(\"StorageItem is not a writeable file\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await (item.handle as FileSystemFileHandle).createWritable({ keepExistingData: true });\r\n }\r\n\r\n public static async getProperties(item: StorageItem): Promise<{ Size: number; LastModified: number; Type: string } | null> {\r\n // getFile can fail with an exception depending if we use polyfill with a save file dialog or not.\r\n try {\r\n const file = item.handle && \"getFile\" in item.handle\r\n ? await item.handle.getFile()\r\n : item.file;\r\n\r\n if (!file) {\r\n return null;\r\n }\r\n\r\n return {\r\n Size: file.size,\r\n LastModified: file.lastModified,\r\n Type: file.type\r\n };\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n public static getItemsIterator(item: StorageItem): any | null {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n return null;\r\n }\r\n\r\n return (item.handle as any).entries();\r\n }\r\n\r\n public static async createFile(item: StorageItem, name: string): Promise {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n throw new TypeError(\"Unable to create item in the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).getFileHandle(name, { create: true }) as Promise);\r\n }\r\n\r\n public static async createFolder(item: StorageItem, name: string): Promise {\r\n if (item.kind !== \"directory\" || !item.handle) {\r\n throw new TypeError(\"Unable to create item in the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).getDirectoryHandle(name, { create: true }) as Promise);\r\n }\r\n\r\n public static async deleteAsync(item: StorageItem): Promise {\r\n if (!item.handle) {\r\n return null;\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).remove({ recursive: true }) as Promise);\r\n }\r\n\r\n public static async moveAsync(item: StorageItem, destination: StorageItem): Promise {\r\n if (!item.handle) {\r\n return null;\r\n }\r\n if (destination.kind !== \"directory\" || !destination.handle) {\r\n throw new TypeError(\"Unable to move item to the requested directory\");\r\n }\r\n\r\n await item.verityPermissions(\"readwrite\");\r\n\r\n return await ((item.handle as any).move(destination /*, newName */) as Promise);\r\n }\r\n\r\n private async verityPermissions(mode: \"read\" | \"readwrite\"): Promise {\r\n if (!this.handle) {\r\n return;\r\n }\r\n\r\n // If we are using polyfill, let it decide permissions by itself, we can't request anything in this case.\r\n if (!Caniuse.hasNativeFilePicker()) {\r\n return;\r\n }\r\n\r\n if (await this.handle.queryPermission({ mode }) === \"granted\") {\r\n return;\r\n }\r\n\r\n if (await this.handle.requestPermission({ mode }) === \"denied\") {\r\n throw new Error(\"Permissions denied\");\r\n }\r\n }\r\n\r\n public static async saveBookmark(item: StorageItem): Promise {\r\n // If file was previously bookmarked, just return old one.\r\n if (item.bookmarkId) {\r\n return item.bookmarkId;\r\n }\r\n\r\n // Bookmarks are not supported with polyfill.\r\n if (!item.handle || !Caniuse.hasNativeFilePicker()) {\r\n return null;\r\n }\r\n\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n const key = await connection.put(fileBookmarksStore, item.handle, item.generateBookmarkId());\r\n return key as string;\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n public static async deleteBookmark(item: StorageItem): Promise {\r\n if (!item.bookmarkId || !Caniuse.hasNativeFilePicker()) {\r\n return;\r\n }\r\n\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n await connection.delete(fileBookmarksStore, item.bookmarkId);\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n private generateBookmarkId(): string {\r\n return Date.now().toString(36) + Math.random().toString(36).substring(2);\r\n }\r\n}\r\n\r\nexport class StorageItems {\r\n constructor(private readonly items: StorageItem[]) { }\r\n\r\n public static itemsArray(instance: StorageItems): StorageItem[] {\r\n return instance.items;\r\n }\r\n\r\n public static filesToItemsArray(files: File[]): StorageItem[] {\r\n if (!files) {\r\n return [];\r\n }\r\n\r\n const retItems = [];\r\n for (let i = 0; i < files.length; i++) {\r\n retItems[i] = StorageItem.createFromFile(files[i]);\r\n }\r\n return retItems;\r\n }\r\n}\r\n", "/** @typedef {import('./FileSystemDirectoryHandle.js').default} FileSystemDirectoryHandle */\n\nconst native = globalThis.showDirectoryPicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @returns {Promise}\n */\nasync function showDirectoryPicker (options = {}) {\n if (native && !options._preferPolyfill) {\n return native(options)\n }\n\n const input = document.createElement('input')\n input.type = 'file'\n\n // Even with this check, the browser may support the attribute, but not the functionality (e.g. iOS Safari)\n if (!('webkitdirectory' in input)) {\n throw new Error(`HTMLInputElement.webkitdirectory is not supported`)\n }\n\n // See https://stackoverflow.com/questions/47664777/javascript-file-input-onchange-not-working-ios-safari-only\n input.style.position = 'fixed'\n input.style.top = '-100000px'\n input.style.left = '-100000px'\n document.body.appendChild(input)\n\n input.webkitdirectory = true\n\n // Lazy load while the user is choosing the directory\n const p = import('./util.js')\n\n await new Promise(resolve => {\n input.addEventListener('change', resolve)\n input.click()\n })\n\n return p.then(mod => mod.getDirHandlesFromInput(input))\n}\n\nexport default showDirectoryPicker\nexport { showDirectoryPicker }\n", "/** @typedef {import('./FileSystemFileHandle.js').default} FileSystemFileHandle */\n\nconst def = { accepts: [] }\nconst native = globalThis.showOpenFilePicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options.multiple] If you want to allow more than one file\n * @param {boolean} [options.excludeAcceptAllOption=false] Prevent user for selecting any\n * @param {Object[]} [options.accepts] Files you want to accept\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @returns {Promise}\n */\nasync function showOpenFilePicker (options = {}) {\n const opts = { ...def, ...options }\n\n if (native && !options._preferPolyfill) {\n return native(opts)\n }\n\n const input = document.createElement('input')\n input.type = 'file'\n input.multiple = opts.multiple\n input.accept = (opts.accepts || [])\n .map(e => [\n ...(e.extensions || []).map(e => '.' + e),\n ...e.mimeTypes || []]\n )\n .flat()\n .join(',')\n\n // See https://stackoverflow.com/questions/47664777/javascript-file-input-onchange-not-working-ios-safari-only\n input.style.position = 'fixed'\n input.style.top = '-100000px'\n input.style.left = '-100000px'\n document.body.appendChild(input)\n\n // Lazy load while the user is choosing the directory\n const p = import('./util.js')\n\n await new Promise(resolve => {\n input.addEventListener('change', resolve)\n input.click()\n })\n\n return p.then(m => m.getFileHandlesFromInput(input))\n}\n\nexport default showOpenFilePicker\nexport { showOpenFilePicker }\n", "/** @typedef {import('./FileSystemFileHandle.js').default} FileSystemFileHandle */\n\nconst native = globalThis.showSaveFilePicker\n\n/**\n * @param {Object} [options]\n * @param {boolean} [options.excludeAcceptAllOption=false] Prevent user for selecting any\n * @param {Object[]} [options.types] Files you want to accept\n * @param {string} [options.suggestedName] the name to fall back to when using polyfill\n * @param {string} [options._name] the name to fall back to when using polyfill\n * @param {boolean} [options._preferPolyfill] If you rather want to use the polyfill instead of the native\n * @return {Promise}\n */\nasync function showSaveFilePicker (options = {}) {\n if (native && !options._preferPolyfill) {\n return native(options)\n }\n\n if (options._name) {\n console.warn('deprecated _name, spec now have `suggestedName`')\n options.suggestedName = options._name\n }\n\n const { FileSystemFileHandle } = await import('./FileSystemFileHandle.js')\n const { FileHandle } = await import('./adapters/downloader.js')\n return new FileSystemFileHandle(new FileHandle(options.suggestedName))\n}\n\nexport default showSaveFilePicker\nexport { showSaveFilePicker }\n", "/** @typedef {import('./FileSystemDirectoryHandle.js').default} FileSystemDirectoryHandle */\n\nif (globalThis.DataTransferItem && !DataTransferItem.prototype.getAsFileSystemHandle) {\n DataTransferItem.prototype.getAsFileSystemHandle = async function () {\n const entry = this.webkitGetAsEntry()\n const [\n { FileHandle, FolderHandle },\n { FileSystemDirectoryHandle },\n { FileSystemFileHandle }\n ] = await Promise.all([\n import('./adapters/sandbox.js'),\n import('./FileSystemDirectoryHandle.js'),\n import('./FileSystemFileHandle.js')\n ])\n\n return entry.isFile\n ? new FileSystemFileHandle(new FileHandle(entry, false))\n : new FileSystemDirectoryHandle(new FolderHandle(entry, false))\n }\n}\n\n/**\n * @param {object=} driver\n * @return {Promise}\n */\nasync function getOriginPrivateDirectory (driver, options = {}) {\n if (!driver) {\n return globalThis.navigator?.storage?.getDirectory() || globalThis.getOriginPrivateDirectory()\n }\n const {FileSystemDirectoryHandle} = await import('./FileSystemDirectoryHandle.js')\n const module = await driver\n const sandbox = await (module.default\n ? module.default(options)\n : module(options)\n )\n return new FileSystemDirectoryHandle(sandbox)\n}\n\nexport default getOriginPrivateDirectory\n", "import showDirectoryPicker from './showDirectoryPicker.js'\nimport showOpenFilePicker from './showOpenFilePicker.js'\nimport showSaveFilePicker from './showSaveFilePicker.js'\nimport getOriginPrivateDirectory from './getOriginPrivateDirectory.js'\nimport FileSystemDirectoryHandle from './FileSystemDirectoryHandle.js'\nimport FileSystemFileHandle from './FileSystemFileHandle.js'\nimport FileSystemHandle from './FileSystemHandle.js'\nimport FileSystemWritableFileStream from './FileSystemWritableFileStream.js'\n\nexport {\n FileSystemDirectoryHandle,\n FileSystemFileHandle,\n FileSystemHandle,\n FileSystemWritableFileStream,\n getOriginPrivateDirectory,\n showDirectoryPicker,\n showOpenFilePicker,\n showSaveFilePicker\n}\n", "import { avaloniaDb, fileBookmarksStore } from \"./indexedDb\";\r\nimport { StorageItem, StorageItems } from \"./storageItem\";\r\nimport { showOpenFilePicker, showDirectoryPicker, showSaveFilePicker, FileSystemFileHandle } from \"native-file-system-adapter\";\r\n\r\ndeclare global {\r\n type WellKnownDirectory = \"desktop\" | \"documents\" | \"downloads\" | \"music\" | \"pictures\" | \"videos\";\r\n interface FilePickerAcceptType {\r\n description?: string | undefined;\r\n accept: Record;\r\n }\r\n}\r\n\r\nexport class StorageProvider {\r\n public static async selectFolderDialog(\r\n startIn: StorageItem | null,\r\n preferPolyfill: boolean): Promise {\r\n // 'Picker' API doesn't accept \"null\" as a parameter, so it should be set to undefined.\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handle = await showDirectoryPicker(options as any);\r\n return StorageItem.createFromHandle(handle);\r\n }\r\n\r\n public static async openFileDialog(\r\n startIn: StorageItem | null, multiple: boolean,\r\n types: FilePickerAcceptType[] | null, excludeAcceptAllOption: boolean,\r\n preferPolyfill: boolean): Promise {\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n multiple,\r\n excludeAcceptAllOption,\r\n types: (types ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handles = await showOpenFilePicker(options);\r\n return new StorageItems(handles.map((handle: FileSystemFileHandle) => StorageItem.createFromHandle(handle)));\r\n }\r\n\r\n public static async saveFileDialog(\r\n startIn: StorageItem | null, suggestedName: string | null,\r\n types: FilePickerAcceptType[] | null, excludeAcceptAllOption: boolean,\r\n preferPolyfill: boolean): Promise {\r\n const options = {\r\n startIn: (startIn?.wellKnownType ?? startIn?.handle ?? undefined),\r\n suggestedName: (suggestedName ?? undefined),\r\n excludeAcceptAllOption,\r\n types: (types ?? undefined),\r\n _preferPolyfill: preferPolyfill\r\n };\r\n\r\n const handle = await showSaveFilePicker(options);\r\n return StorageItem.createFromHandle(handle);\r\n }\r\n\r\n public static async openBookmark(key: string): Promise {\r\n const connection = await avaloniaDb.connect();\r\n try {\r\n const handle = await connection.get(fileBookmarksStore, key);\r\n return handle && StorageItem.createFromHandle(handle, key);\r\n } finally {\r\n connection.close();\r\n }\r\n }\r\n\r\n public static createAcceptType(description: string, mimeTypes: string[], extensions: string[] | undefined): FilePickerAcceptType {\r\n const accept: Record = {};\r\n mimeTypes.forEach(a => { accept[a] = extensions ?? []; });\r\n return { description, accept };\r\n }\r\n}\r\n"],
+ "mappings": "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",
+ "names": ["config", "config_default", "init_config", "__esmMin", "memory_exports", "__export", "FileHandle", "FolderHandle", "Sink", "memory_default", "File", "Blob", "DOMException", "INVALID", "GONE", "MISMATCH", "MOD_ERR", "SYNTAX", "SECURITY", "DISALLOWED", "fs", "init_memory", "__esmMin", "init_util", "init_config", "config_default", "errors", "fileHandle", "file", "chunk", "blob", "head", "tail", "padding", "name", "writable", "opts", "other", "entry", "isFile", "recursive", "x", "sandbox_exports", "__export", "FileHandle", "FolderHandle", "sandbox_default", "DISALLOWED", "Sink", "init_sandbox", "__esmMin", "init_util", "errors", "writer", "fileEntry", "chunk", "resolve", "reject", "evt", "file", "writable", "other", "opts", "fileWriter", "dir", "reader", "entries", "x", "name", "entry", "err", "e", "kAdapter", "_a", "FileSystemHandle", "FileSystemHandle_default", "init_FileSystemHandle", "__esmMin", "adapter", "__publicField", "mode", "handle", "options", "other", "WritableStream", "FileSystemWritableFileStream", "FileSystemWritableFileStream_default", "init_FileSystemWritableFileStream", "__esmMin", "init_config", "config_default", "args", "w", "p", "position", "size", "data", "writer", "FileSystemFileHandle_exports", "__export", "FileSystemFileHandle", "FileSystemFileHandle_default", "kAdapter", "_a", "init_FileSystemFileHandle", "__esmMin", "init_FileSystemHandle", "init_FileSystemWritableFileStream", "FileSystemHandle_default", "adapter", "__publicField", "options", "FileSystemWritableFileStream_default", "FileSystemDirectoryHandle_exports", "__export", "FileSystemDirectoryHandle", "FileSystemDirectoryHandle_default", "kAdapter", "_a", "init_FileSystemDirectoryHandle", "__esmMin", "init_FileSystemHandle", "FileSystemHandle_default", "adapter", "__publicField", "name", "options", "handle", "FileSystemFileHandle", "_", "entry", "possibleDescendant", "openSet", "current", "path", "util_exports", "__export", "config", "errors", "fromDataTransfer", "getDirHandlesFromInput", "getFileHandlesFromInput", "entries", "memory", "sandbox", "fs", "folder", "entry", "input", "FolderHandle", "FileHandle", "FileSystemDirectoryHandle", "files", "rootName", "root", "file", "path", "name", "dir", "FileSystemFileHandle", "init_util", "__esmMin", "m", "downloader_exports", "__export", "FileHandle", "WritableStream", "TransformStream", "DOMException", "Blob", "GONE", "isSafari", "WRITE", "PULL", "ERROR", "ABORT", "CLOSE", "MessagePortSink", "RemoteWritableStream", "init_downloader", "__esmMin", "init_util", "init_config", "config_default", "errors", "name", "other", "options", "_a", "sw", "link", "ts", "sink", "chunks", "chunk", "blob", "writable", "readablePort", "fileName", "headers", "keepAlive", "ctrl", "reader", "pump", "_", "e", "iframe", "port", "event", "controller", "message", "reason", "resolve", "reject", "channel", "InnerDbConnection", "database", "store", "mode", "obj", "key", "os", "resolve", "reject", "response", "IndexedDbWrapper", "databaseName", "objectStores", "conn", "event", "db", "fileBookmarksStore", "avaloniaDb", "CaretHelper", "element", "position", "options", "_a", "_b", "isBrowser", "debug", "el", "div", "style", "computed", "isInput", "properties", "prop", "height", "outerHeight", "targetHeight", "isFirefox", "span", "coordinates", "InputHelper", "args", "resolve", "reject", "element", "keyDownCallback", "keyUpCallback", "keyDownHandler", "keyUpHandler", "beforeInputCallback", "compositionStartCallback", "compositionUpdateCallback", "compositionEndCallback", "compositionStartHandler", "beforeInputHandler", "ranges", "start", "end", "compositionUpdateHandler", "compositionEndHandler", "pointerMoveCallback", "pointerDownCallback", "pointerUpCallback", "pointerCancelCallback", "wheelCallback", "pointerMoveHandler", "pointerDownHandler", "pointerUpHandler", "pointerCancelHandler", "wheelHandler", "inputCallback", "inputHandler", "dragEvent", "dragHandler", "pointerEvent", "handler", "event", "elementRect", "keyboardRect", "inputElement", "kind", "x", "y", "caretWidth", "caretHeight", "caret", "left", "top", "CaretHelper", "text", "modifiers", "containerElement", "pointerId", "Caniuse", "_a", "userAgentData", "userAgent", "regex1", "regex2", "StorageItem", "handle", "file", "bookmarkId", "wellKnownType", "_a", "type", "item", "e", "name", "destination", "mode", "Caniuse", "connection", "avaloniaDb", "fileBookmarksStore", "StorageItems", "items", "instance", "files", "retItems", "i", "native", "showDirectoryPicker", "options", "input", "p", "resolve", "mod", "showDirectoryPicker_default", "def", "native", "showOpenFilePicker", "options", "opts", "input", "e", "p", "resolve", "m", "showOpenFilePicker_default", "native", "showSaveFilePicker", "options", "FileSystemFileHandle", "FileHandle", "showSaveFilePicker_default", "entry", "FileHandle", "FolderHandle", "FileSystemDirectoryHandle", "FileSystemFileHandle", "init_FileSystemDirectoryHandle", "init_FileSystemFileHandle", "init_FileSystemHandle", "init_FileSystemWritableFileStream", "StorageProvider", "startIn", "preferPolyfill", "_a", "_b", "options", "handle", "showDirectoryPicker_default", "StorageItem", "multiple", "types", "excludeAcceptAllOption", "handles", "showOpenFilePicker_default", "StorageItems", "suggestedName", "showSaveFilePicker_default", "key", "connection", "avaloniaDb", "fileBookmarksStore", "description", "mimeTypes", "extensions", "accept", "a"]
}
diff --git a/_framework/storage.js.map.br b/_framework/storage.js.map.br
new file mode 100644
index 0000000..c92b897
Binary files /dev/null and b/_framework/storage.js.map.br differ
diff --git a/_framework/storage.js.map.gz b/_framework/storage.js.map.gz
new file mode 100644
index 0000000..e7b6401
Binary files /dev/null and b/_framework/storage.js.map.gz differ
diff --git a/_framework/sw.js b/_framework/sw.js
new file mode 100755
index 0000000..ba35405
--- /dev/null
+++ b/_framework/sw.js
@@ -0,0 +1,2 @@
+var r=class{constructor(e){this.port=e;this.port.onmessage=a=>this.onMessage(a.data)}start(e){this.controller=e}cancel(e){this.port.postMessage({type:1,reason:e.message}),this.port.close()}onMessage(e){!this.controller||(e.type===0&&(this.controller.enqueue(e.chunk),this.port.postMessage({type:0})),e.type===1&&(this.controller.error(e.reason),this.port.close()),e.type===2&&(this.controller.close(),this.port.close()))}};self.addEventListener("install",()=>{self.skipWaiting()});self.addEventListener("activate",t=>{t.waitUntil(self.clients.claim())});self.map=new Map;globalThis.addEventListener("message",t=>{let e=t.data;e.url&&e.readablePort&&(e.rs=new ReadableStream(new r(t.data.readablePort),new CountQueuingStrategy({highWaterMark:4})),self.map.set(e.url,e))});globalThis.addEventListener("fetch",t=>{let e=t.request.url,a=self.map,s=a.get(e);if(!s)return null;a.delete(e),t.respondWith(new Response(s.rs,{headers:s.headers}))});
+//# sourceMappingURL=sw.js.map
diff --git a/_framework/sw.js.br b/_framework/sw.js.br
new file mode 100644
index 0000000..57195f2
--- /dev/null
+++ b/_framework/sw.js.br
@@ -0,0 +1,4 @@
+ We%G0z%sƏ?$'
+ɽ?cuO˲-.}*(8'#+.^\slC-RŔT{p+NJz+K21Lb| +ObӘ(Re1K;p[
_MCW|`i7Qo
+۶:A{ :3֘itƵ/vcӮ۲L:3WC,O]ɵ/f8-»S?x
^ {f.
9@q8č,NC&7%_̑l#*b/|ΛWw畐hZp@J x+ʇ5jqV4GuP%kJ;Cv\KJ
+J5==iZ
\ No newline at end of file
diff --git a/_framework/sw.js.gz b/_framework/sw.js.gz
new file mode 100644
index 0000000..e3a1d6e
Binary files /dev/null and b/_framework/sw.js.gz differ
diff --git a/sw.js.map b/_framework/sw.js.map
similarity index 62%
rename from sw.js.map
rename to _framework/sw.js.map
index 78c2401..dd3e663 100755
--- a/sw.js.map
+++ b/_framework/sw.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../webapp/modules/sw.ts"],
- "sourcesContent": ["const WRITE = 0;\r\nconst PULL = 0;\r\nconst ERROR = 1;\r\nconst ABORT = 1;\r\nconst CLOSE = 2;\r\n\r\nclass MessagePortSource implements UnderlyingSource {\r\n private controller?: ReadableStreamController;\r\n\r\n constructor (private readonly port: MessagePort) {\r\n this.port.onmessage = evt => this.onMessage(evt.data);\r\n }\r\n\r\n start (controller: ReadableStreamController) {\r\n this.controller = controller;\r\n }\r\n\r\n cancel (reason: Error) {\r\n // Firefox can notify a cancel event, chrome can't\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=638494\r\n this.port.postMessage({ type: ERROR, reason: reason.message });\r\n this.port.close();\r\n }\r\n\r\n onMessage (message: { type: number; chunk: Uint8Array; reason: any }) {\r\n // enqueue() will call pull() if needed when there's no backpressure\r\n if (!this.controller) {\r\n return;\r\n }\r\n if (message.type === WRITE) {\r\n this.controller.enqueue(message.chunk);\r\n this.port.postMessage({ type: PULL });\r\n }\r\n if (message.type === ABORT) {\r\n this.controller.error(message.reason);\r\n this.port.close();\r\n }\r\n if (message.type === CLOSE) {\r\n this.controller.close();\r\n this.port.close();\r\n }\r\n }\r\n}\r\n\r\nself.addEventListener(\"install\", () => {\r\n (self as any).skipWaiting();\r\n});\r\n\r\nself.addEventListener(\"activate\", event /* ExtendableEvent */ => {\r\n (event as any).waitUntil((self as any).clients.claim());\r\n});\r\n\r\nconst map = new Map();\r\n\r\n// This should be called once per download\r\n// Each event has a dataChannel that the data will be piped through\r\nglobalThis.addEventListener(\"message\", evt => {\r\n const data = evt.data;\r\n if (data.url && data.readablePort) {\r\n data.rs = new ReadableStream(\r\n new MessagePortSource(evt.data.readablePort),\r\n new CountQueuingStrategy({ highWaterMark: 4 })\r\n );\r\n map.set(data.url, data);\r\n }\r\n});\r\n\r\nglobalThis.addEventListener(\"fetch\", evt => {\r\n const url = (evt as any).request.url;\r\n const data = map.get(url);\r\n if (!data) return null;\r\n map.delete(url);\r\n (evt as any).respondWith(new Response(data.rs, {\r\n headers: data.headers\r\n }));\r\n});\r\n\r\nexport {};\r\n"],
- "mappings": "AAMA,IAAMA,EAAN,KAAoD,CAGhD,YAA8BC,EAAmB,CAAnB,UAAAA,EAC1B,KAAK,KAAK,UAAYC,GAAO,KAAK,UAAUA,EAAI,IAAI,CACxD,CAEA,MAAOC,EAA2C,CAC9C,KAAK,WAAaA,CACtB,CAEA,OAAQC,EAAe,CAGnB,KAAK,KAAK,YAAY,CAAE,KAAM,EAAO,OAAQA,EAAO,OAAQ,CAAC,EAC7D,KAAK,KAAK,MAAM,CACpB,CAEA,UAAWC,EAA2D,CAE9D,CAAC,KAAK,aAGNA,EAAQ,OAAS,IACjB,KAAK,WAAW,QAAQA,EAAQ,KAAK,EACrC,KAAK,KAAK,YAAY,CAAE,KAAM,CAAK,CAAC,GAEpCA,EAAQ,OAAS,IACjB,KAAK,WAAW,MAAMA,EAAQ,MAAM,EACpC,KAAK,KAAK,MAAM,GAEhBA,EAAQ,OAAS,IACjB,KAAK,WAAW,MAAM,EACtB,KAAK,KAAK,MAAM,GAExB,CACJ,EAEA,KAAK,iBAAiB,UAAW,IAAM,CAClC,KAAa,YAAY,CAC9B,CAAC,EAED,KAAK,iBAAiB,WAAYC,GAA+B,CAC5DA,EAAc,UAAW,KAAa,QAAQ,MAAM,CAAC,CAC1D,CAAC,EAED,IAAMC,EAAM,IAAI,IAIhB,WAAW,iBAAiB,UAAWL,GAAO,CAC1C,IAAMM,EAAON,EAAI,KACbM,EAAK,KAAOA,EAAK,eACjBA,EAAK,GAAK,IAAI,eACV,IAAIR,EAAkBE,EAAI,KAAK,YAAY,EAC3C,IAAI,qBAAqB,CAAE,cAAe,CAAE,CAAC,CACjD,EACAK,EAAI,IAAIC,EAAK,IAAKA,CAAI,EAE9B,CAAC,EAED,WAAW,iBAAiB,QAASN,GAAO,CACxC,IAAMO,EAAOP,EAAY,QAAQ,IAC3BM,EAAOD,EAAI,IAAIE,CAAG,EACxB,GAAI,CAACD,EAAM,OAAO,KAClBD,EAAI,OAAOE,CAAG,EACbP,EAAY,YAAY,IAAI,SAASM,EAAK,GAAI,CAC3C,QAASA,EAAK,OAClB,CAAC,CAAC,CACN,CAAC",
- "names": ["MessagePortSource", "port", "evt", "controller", "reason", "message", "event", "map", "data", "url"]
+ "sourcesContent": ["const WRITE = 0;\r\nconst PULL = 0;\r\nconst ERROR = 1;\r\nconst ABORT = 1;\r\nconst CLOSE = 2;\r\n\r\nclass MessagePortSource implements UnderlyingSource {\r\n private controller?: ReadableStreamController;\r\n\r\n constructor (private readonly port: MessagePort) {\r\n this.port.onmessage = evt => this.onMessage(evt.data);\r\n }\r\n\r\n start (controller: ReadableStreamController) {\r\n this.controller = controller;\r\n }\r\n\r\n cancel (reason: Error) {\r\n // Firefox can notify a cancel event, chrome can't\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=638494\r\n this.port.postMessage({ type: ERROR, reason: reason.message });\r\n this.port.close();\r\n }\r\n\r\n onMessage (message: { type: number; chunk: Uint8Array; reason: any }) {\r\n // enqueue() will call pull() if needed when there's no backpressure\r\n if (!this.controller) {\r\n return;\r\n }\r\n if (message.type === WRITE) {\r\n this.controller.enqueue(message.chunk);\r\n this.port.postMessage({ type: PULL });\r\n }\r\n if (message.type === ABORT) {\r\n this.controller.error(message.reason);\r\n this.port.close();\r\n }\r\n if (message.type === CLOSE) {\r\n this.controller.close();\r\n this.port.close();\r\n }\r\n }\r\n}\r\n\r\nself.addEventListener(\"install\", () => {\r\n (self as any).skipWaiting();\r\n});\r\n\r\nself.addEventListener(\"activate\", event /* ExtendableEvent */ => {\r\n (event as any).waitUntil((self as any).clients.claim());\r\n});\r\n\r\n(self as any).map = new Map();\r\n\r\n// This should be called once per download\r\n// Each event has a dataChannel that the data will be piped through\r\nglobalThis.addEventListener(\"message\", evt => {\r\n const data = evt.data;\r\n if (data.url && data.readablePort) {\r\n data.rs = new ReadableStream(\r\n new MessagePortSource(evt.data.readablePort),\r\n new CountQueuingStrategy({ highWaterMark: 4 })\r\n );\r\n const map = (self as any).map;\r\n map.set(data.url, data);\r\n }\r\n});\r\n\r\nglobalThis.addEventListener(\"fetch\", evt => {\r\n const url = (evt as any).request.url;\r\n const map = (self as any).map;\r\n const data = map.get(url);\r\n if (!data) return null;\r\n map.delete(url);\r\n (evt as any).respondWith(new Response(data.rs, {\r\n headers: data.headers\r\n }));\r\n});\r\n\r\nexport {};\r\n"],
+ "mappings": "AAMA,IAAMA,EAAN,KAAoD,CAGhD,YAA8BC,EAAmB,CAAnB,UAAAA,EAC1B,KAAK,KAAK,UAAYC,GAAO,KAAK,UAAUA,EAAI,IAAI,CACxD,CAEA,MAAOC,EAA2C,CAC9C,KAAK,WAAaA,CACtB,CAEA,OAAQC,EAAe,CAGnB,KAAK,KAAK,YAAY,CAAE,KAAM,EAAO,OAAQA,EAAO,OAAQ,CAAC,EAC7D,KAAK,KAAK,MAAM,CACpB,CAEA,UAAWC,EAA2D,CAE9D,CAAC,KAAK,aAGNA,EAAQ,OAAS,IACjB,KAAK,WAAW,QAAQA,EAAQ,KAAK,EACrC,KAAK,KAAK,YAAY,CAAE,KAAM,CAAK,CAAC,GAEpCA,EAAQ,OAAS,IACjB,KAAK,WAAW,MAAMA,EAAQ,MAAM,EACpC,KAAK,KAAK,MAAM,GAEhBA,EAAQ,OAAS,IACjB,KAAK,WAAW,MAAM,EACtB,KAAK,KAAK,MAAM,GAExB,CACJ,EAEA,KAAK,iBAAiB,UAAW,IAAM,CAClC,KAAa,YAAY,CAC9B,CAAC,EAED,KAAK,iBAAiB,WAAYC,GAA+B,CAC5DA,EAAc,UAAW,KAAa,QAAQ,MAAM,CAAC,CAC1D,CAAC,EAEA,KAAa,IAAM,IAAI,IAIxB,WAAW,iBAAiB,UAAWJ,GAAO,CAC1C,IAAMK,EAAOL,EAAI,KACbK,EAAK,KAAOA,EAAK,eACjBA,EAAK,GAAK,IAAI,eACV,IAAIP,EAAkBE,EAAI,KAAK,YAAY,EAC3C,IAAI,qBAAqB,CAAE,cAAe,CAAE,CAAC,CACjD,EACa,KAAa,IACtB,IAAIK,EAAK,IAAKA,CAAI,EAE9B,CAAC,EAED,WAAW,iBAAiB,QAASL,GAAO,CACxC,IAAMM,EAAON,EAAY,QAAQ,IAC3BO,EAAO,KAAa,IACpBF,EAAOE,EAAI,IAAID,CAAG,EACxB,GAAI,CAACD,EAAM,OAAO,KAClBE,EAAI,OAAOD,CAAG,EACbN,EAAY,YAAY,IAAI,SAASK,EAAK,GAAI,CAC3C,QAASA,EAAK,OAClB,CAAC,CAAC,CACN,CAAC",
+ "names": ["MessagePortSource", "port", "evt", "controller", "reason", "message", "event", "data", "url", "map"]
}
diff --git a/_framework/sw.js.map.br b/_framework/sw.js.map.br
new file mode 100644
index 0000000..a27f315
Binary files /dev/null and b/_framework/sw.js.map.br differ
diff --git a/_framework/sw.js.map.gz b/_framework/sw.js.map.gz
new file mode 100644
index 0000000..e615060
Binary files /dev/null and b/_framework/sw.js.map.gz differ
diff --git a/avalonia.js b/avalonia.js
deleted file mode 100755
index 9358e92..0000000
--- a/avalonia.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var v=class{constructor(e,t,n){this.renderLoopEnabled=!1;this.renderLoopRequest=0;if(this.htmlCanvas=t,this.renderFrameCallback=n,e){let i=v.createWebGLContext(t);if(!i){console.error("Failed to create WebGL context");return}let o=globalThis.AvaloniaGL;o.makeContextCurrent(i);let a=o.currentContext.GLctx,r=a.getParameter(a.FRAMEBUFFER_BINDING);this.glInfo={context:i,fboId:r?r.id:0,stencil:a.getParameter(a.STENCIL_BITS),sample:0,depth:a.getParameter(a.DEPTH_BITS)}}}static initGL(e,t,n){let i=v.init(!0,e,t,n);return!i||!i.glInfo?null:i.glInfo}static init(e,t,n,i){let o=t;if(!o)return console.error("No canvas element was provided."),null;v.elements||(v.elements=new Map),v.elements.set(n,t);let a=new v(e,t,i);return o.Canvas=a,a}setEnableRenderLoop(e){this.renderLoopEnabled=e,e?this.requestAnimationFrame():this.renderLoopRequest!==0&&(window.cancelAnimationFrame(this.renderLoopRequest),this.renderLoopRequest=0)}requestAnimationFrame(e){e!==void 0&&this.renderLoopEnabled!==e&&this.setEnableRenderLoop(e),this.renderLoopRequest===0&&(this.renderLoopRequest=window.requestAnimationFrame(()=>{var t,n;this.htmlCanvas.width!==this.newWidth&&(this.htmlCanvas.width=(t=this.newWidth)!=null?t:0),this.htmlCanvas.height!==this.newHeight&&(this.htmlCanvas.height=(n=this.newHeight)!=null?n:0),this.renderFrameCallback(),this.renderLoopRequest=0,this.renderLoopEnabled&&this.requestAnimationFrame()}))}setCanvasSize(e,t){this.renderLoopRequest!==0&&(window.cancelAnimationFrame(this.renderLoopRequest),this.renderLoopRequest=0),this.newWidth=e,this.newHeight=t,this.htmlCanvas.width!==this.newWidth&&(this.htmlCanvas.width=this.newWidth),this.htmlCanvas.height!==this.newHeight&&(this.htmlCanvas.height=this.newHeight),this.requestAnimationFrame()}static setCanvasSize(e,t,n){let i=e;!i||!i.Canvas||i.Canvas.setCanvasSize(t,n)}static requestAnimationFrame(e,t){let n=e;!n||!n.Canvas||n.Canvas.requestAnimationFrame(t)}static createWebGLContext(e){let t={alpha:1,depth:1,stencil:8,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,preferLowPowerToHighPerformance:0,failIfMajorPerformanceCaveat:0,majorVersion:2,minorVersion:0,enableExtensionsByDefault:1,explicitSwapControl:0,renderViaOffscreenBackBuffer:1},n=globalThis.AvaloniaGL,i=n.createContext(e,t);return!i&&t.majorVersion>1&&(console.warn("Falling back to WebGL 1.0"),t.majorVersion=1,t.minorVersion=0,i=n.createContext(e,t)),i}},c=class{static observe(e,t,n){if(!e||!n)return;c.lastMove=Date.now(),n(e.clientWidth,e.clientHeight);let i=o=>{Date.now()-c.lastMove>33&&(n(e.clientWidth,e.clientHeight),c.lastMove=Date.now())};window.addEventListener("resize",i)}static unobserve(e){if(!e||!c.observer)return;let t=c.elements.get(e);t&&(c.elements.delete(e),c.observer.unobserve(t))}static init(){c.observer||(c.elements=new Map,c.observer=new ResizeObserver(e=>{for(let t of e)c.invoke(t.target)}))}static invoke(e){let n=e.SizeWatcher;if(!(!n||!n.callback))return n.callback(e.clientWidth,e.clientHeight)}},d=class{static getDpi(){return window.devicePixelRatio}static start(e){return d.lastDpi=window.devicePixelRatio,d.timerId=window.setInterval(d.update,1e3),d.callback=e,d.lastDpi}static stop(){window.clearInterval(d.timerId)}static update(){if(!d.callback)return;let e=window.devicePixelRatio,t=d.lastDpi;d.lastDpi=e,Math.abs(t-e)>.001&&d.callback(t,e)}};var g=class{static getCaretCoordinates(e,t,n){var h,s;if(!M)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");let i=(h=n==null?void 0:n.debug)!=null?h:!1;if(i){let b=document.querySelector("#input-textarea-caret-position-mirror-div");b&&((s=b.parentNode)==null||s.removeChild(b))}let o=document.createElement("div");o.id="input-textarea-caret-position-mirror-div",document.body.appendChild(o);let a=o.style,r=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle,u=e.nodeName==="INPUT";a.whiteSpace="pre-wrap",u||(a.wordWrap="break-word"),a.position="absolute",i||(a.visibility="hidden"),F.forEach(b=>{if(u&&b==="lineHeight")if(r.boxSizing==="border-box"){let y=parseInt(r.height),k=parseInt(r.paddingTop)+parseInt(r.paddingBottom)+parseInt(r.borderTopWidth)+parseInt(r.borderBottomWidth),S=k+parseInt(r.lineHeight);y>S?a.lineHeight=`${y-k}px`:y===S?a.lineHeight=r.lineHeight:a.lineHeight="0"}else a.lineHeight=r.height;else a[b]=r[b]}),A?e.scrollHeight>parseInt(r.height)&&(a.overflowY="scroll"):a.overflow="hidden",o.textContent=e.value.substring(0,t),u&&(o.textContent=o.textContent.replace(/\s/g,"\xA0"));let p=document.createElement("span");p.textContent=e.value.substring(t)||".",o.appendChild(p);let l={top:p.offsetTop+parseInt(r.borderTopWidth),left:p.offsetLeft+parseInt(r.borderLeftWidth),height:parseInt(r.lineHeight)};return i?p.style.backgroundColor="#aaa":document.body.removeChild(o),l}},F=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],M=typeof window!="undefined",A=M&&window.mozInnerScreenX!=null;var f=class{static initializeBackgroundHandlers(){this.clipboardState===0&&(globalThis.addEventListener("paste",e=>{this.clipboardState===2&&this.resolveClipboard(e.clipboardData.getData("text"))}),this.clipboardState=1)}static async readClipboardText(){if(globalThis.navigator.clipboard.readText)return await globalThis.navigator.clipboard.readText();try{return await new Promise((e,t)=>{this.clipboardState=2,this.resolveClipboard=e,this.rejectClipboard=t})}finally{this.clipboardState=1,this.resolveClipboard=null,this.rejectClipboard=null}}static subscribeKeyEvents(e,t,n){let i=a=>{t(a.code,a.key,this.getModifiers(a))&&this.clipboardState!==2&&a.preventDefault()};e.addEventListener("keydown",i);let o=a=>{n(a.code,a.key,this.getModifiers(a))&&a.preventDefault(),this.rejectClipboard&&this.rejectClipboard()};return e.addEventListener("keyup",o),()=>{e.removeEventListener("keydown",i),e.removeEventListener("keyup",o)}}static subscribeTextEvents(e,t,n,i,o){let a=l=>{n(l)&&l.preventDefault()};e.addEventListener("compositionstart",a);let r=l=>{let h=l.getTargetRanges(),s=-1,b=-1;h.length>0&&(s=h[0].startOffset,b=h[0].endOffset),l.inputType==="insertCompositionText"&&(s=2,b=s+2),t(l,s,b)&&l.preventDefault()};e.addEventListener("beforeinput",r);let u=l=>{i(l)&&l.preventDefault()};e.addEventListener("compositionupdate",u);let p=l=>{o(l)&&l.preventDefault()};return e.addEventListener("compositionend",p),()=>{e.removeEventListener("compositionstart",a),e.removeEventListener("compositionupdate",u),e.removeEventListener("compositionend",p)}}static subscribePointerEvents(e,t,n,i,o,a){let r=s=>{t(s),s.preventDefault()},u=s=>{n(s),s.preventDefault()},p=s=>{i(s),s.preventDefault()},l=s=>{o(s),s.preventDefault()},h=s=>{a(s),s.preventDefault()};return e.addEventListener("pointermove",r),e.addEventListener("pointerdown",u),e.addEventListener("pointerup",p),e.addEventListener("wheel",h),e.addEventListener("pointercancel",l),()=>{e.removeEventListener("pointerover",r),e.removeEventListener("pointerdown",u),e.removeEventListener("pointerup",p),e.removeEventListener("pointercancel",l),e.removeEventListener("wheel",h)}}static subscribeInputEvents(e,t){let n=i=>{t(i.value)&&i.preventDefault()};return e.addEventListener("input",n),()=>{e.removeEventListener("input",n)}}static subscribeDropEvents(e,t){let n=i=>{t(i)&&i.preventDefault()};return e.addEventListener("dragover",n),e.addEventListener("dragenter",n),e.addEventListener("dragleave",n),e.addEventListener("drop",n),()=>{e.removeEventListener("dragover",n),e.removeEventListener("dragenter",n),e.removeEventListener("dragleave",n),e.removeEventListener("drop",n)}}static getCoalescedEvents(e){return e.getCoalescedEvents()}static subscribeKeyboardGeometryChange(e,t){"virtualKeyboard"in navigator&&navigator.virtualKeyboard.addEventListener("geometrychange",n=>{let i=e.getBoundingClientRect(),o=n.target.boundingRect;t({x:o.x-i.x,y:o.y-i.y,width:o.width,height:o.height})})}static subscribeVisibilityChange(e){return document.addEventListener("visibilitychange",()=>{e(document.visibilityState==="visible")}),document.visibilityState==="visible"}static clearInput(e){e.value=""}static focusElement(e){e.focus()}static setCursor(e,t){t==="default"?e.style.removeProperty("cursor"):e.style.cursor=t}static setBounds(e,t,n,i,o,a){e.style.left=t.toFixed(0)+"px",e.style.top=n.toFixed(0)+"px";let{left:r,top:u}=g.getCaretCoordinates(e,a);e.style.left=(t-r).toFixed(0)+"px",e.style.top=(n-u).toFixed(0)+"px"}static hide(e){e.style.display="none"}static show(e){e.style.display="block"}static setSurroundingText(e,t,n,i){!e||(e.value=t,e.setSelectionRange(n,i),e.style.width="20px",e.style.width=`${e.scrollWidth}px`)}static getModifiers(e){let t=0;return e.ctrlKey&&(t|=2),e.altKey&&(t|=1),e.shiftKey&&(t|=4),e.metaKey&&(t|=8),t}};f.clipboardState=0;var w=class{static addClass(e,t){e.classList.add(t)}static observeDarkMode(e){if(globalThis.matchMedia===void 0)return!1;let t=globalThis.matchMedia("(prefers-color-scheme: dark)"),n=globalThis.matchMedia("(prefers-contrast: more)");return t.addEventListener("change",i=>{e(i.matches,n.matches)}),n.addEventListener("change",i=>{e(t.matches,i.matches)}),{isDarkMode:t.matches,isHighContrast:n.matches}}static createAvaloniaHost(e){let t=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10);e.classList.add("avalonia-container"),e.tabIndex=0,e.oncontextmenu=function(){return!1},e.style.overflow="hidden",e.style.touchAction="none";let n=document.createElement("canvas");n.id=`canvas${t}`,n.classList.add("avalonia-canvas"),n.style.width="100%",n.style.position="absolute";let i=document.createElement("div");i.id=`nativeHost${t}`,i.classList.add("avalonia-native-host"),i.style.left="0px",i.style.top="0px",i.style.width="100%",i.style.height="100%",i.style.position="absolute";let o=document.createElement("input");return o.id=`inputElement${t}`,o.classList.add("avalonia-input-element"),o.autocapitalize="none",o.type="text",o.spellcheck=!1,o.style.padding="0",o.style.margin="0",o.style.position="absolute",o.style.overflow="hidden",o.style.borderStyle="hidden",o.style.outline="none",o.style.background="transparent",o.style.color="transparent",o.style.display="none",o.style.height="20px",o.style.zIndex="-1",o.onpaste=function(){return!1},o.oncopy=function(){return!1},o.oncut=function(){return!1},e.prepend(o),e.prepend(i),e.prepend(n),{host:e,canvas:n,nativeHost:i,inputElement:o}}static isFullscreen(){return document.fullscreenElement!=null}static async setFullscreen(e){e?await document.documentElement.requestFullscreen():await document.exitFullscreen()}static getSafeAreaPadding(){let e=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sat")),t=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sab")),n=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sal")),i=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sar"));return[n,e,t,i]}};var E=class{static hasNativeFilePicker(){return"showSaveFilePicker"in globalThis}static isMobile(){var o;let e=(o=globalThis.navigator)==null?void 0:o.userAgentData;if(e)return e.mobile;let t=navigator.userAgent,n=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,i=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;return n.test(t)||i.test(t.substr(0,4))}};var L=class{static async seek(e,t){return await e.seek(t)}static async truncate(e,t){return await e.truncate(t)}static async close(e){return await e.close()}static async write(e,t){let n=new Uint8Array(t.byteLength);return t.copyTo(n),await e.write(n)}static byteLength(e){return e.size}static async sliceArrayBuffer(e,t,n){let i=await e.slice(t,t+n).arrayBuffer();return new Uint8Array(i)}static toMemoryView(e){return e}};var C=class{},x=class{static createDefaultChild(e){return document.createElement("div")}static createAttachment(){return new C}static initializeWithChildHandle(e,t){e._child=t,e._child.style.position="absolute"}static attachTo(e,t){e._host&&e._child&&e._host.removeChild(e._child),e._host=t,e._host&&e._child&&e._host.appendChild(e._child)}static showInBounds(e,t,n,i,o){e._child&&(e._child.style.top=`${n}px`,e._child.style.left=`${t}px`,e._child.style.width=`${i}px`,e._child.style.height=`${o}px`,e._child.style.display="block")}static hideWithSize(e,t,n){e._child&&(e._child.style.width=`${t}px`,e._child.style.height=`${n}px`,e._child.style.display="none")}static releaseChild(e){e._child&&(e._child=void 0)}};var H=class{static addBackHandler(e){history.pushState(null,"",window.location.href),window.onpopstate=()=>{e()?history.forward():history.back()}}};var T=class{static itemsArrayAt(e,t){let n=e[t];if(!n)return[];let i=[];for(let o=0;o;\r\n\r\n htmlCanvas: HTMLCanvasElement;\r\n glInfo?: SKGLViewInfo;\r\n renderFrameCallback: () => void;\r\n renderLoopEnabled: boolean = false;\r\n renderLoopRequest: number = 0;\r\n newWidth?: number;\r\n newHeight?: number;\r\n\r\n public static initGL(element: HTMLCanvasElement, elementId: string, renderFrameCallback: () => void): SKGLViewInfo | null {\r\n const view = Canvas.init(true, element, elementId, renderFrameCallback);\r\n if (!view || !view.glInfo) {\r\n return null;\r\n }\r\n\r\n return view.glInfo;\r\n }\r\n\r\n static init(useGL: boolean, element: HTMLCanvasElement, elementId: string, renderFrameCallback: () => void): Canvas | null {\r\n const htmlCanvas = element as CanvasElement;\r\n if (!htmlCanvas) {\r\n console.error(\"No canvas element was provided.\");\r\n return null;\r\n }\r\n\r\n if (!Canvas.elements) {\r\n Canvas.elements = new Map();\r\n }\r\n Canvas.elements.set(elementId, element);\r\n\r\n const view = new Canvas(useGL, element, renderFrameCallback);\r\n\r\n htmlCanvas.Canvas = view;\r\n\r\n return view;\r\n }\r\n\r\n public constructor(useGL: boolean, element: HTMLCanvasElement, renderFrameCallback: () => void) {\r\n this.htmlCanvas = element;\r\n this.renderFrameCallback = renderFrameCallback;\r\n\r\n if (useGL) {\r\n const ctx = Canvas.createWebGLContext(element);\r\n if (!ctx) {\r\n console.error(\"Failed to create WebGL context\");\r\n return;\r\n }\r\n\r\n const GL = (globalThis as any).AvaloniaGL;\r\n\r\n // make current\r\n GL.makeContextCurrent(ctx);\r\n\r\n const GLctx = GL.currentContext.GLctx as WebGLRenderingContext;\r\n\r\n // read values\r\n const fbo = GLctx.getParameter(GLctx.FRAMEBUFFER_BINDING);\r\n\r\n this.glInfo = {\r\n context: ctx,\r\n fboId: fbo ? fbo.id : 0,\r\n stencil: GLctx.getParameter(GLctx.STENCIL_BITS),\r\n sample: 0, // TODO: GLctx.getParameter(GLctx.SAMPLES)\r\n depth: GLctx.getParameter(GLctx.DEPTH_BITS)\r\n };\r\n }\r\n }\r\n\r\n public setEnableRenderLoop(enable: boolean): void {\r\n this.renderLoopEnabled = enable;\r\n\r\n // either start the new frame or cancel the existing one\r\n if (enable) {\r\n // console.info(`Enabling render loop with callback ${this.renderFrameCallback._id}...`);\r\n this.requestAnimationFrame();\r\n } else if (this.renderLoopRequest !== 0) {\r\n window.cancelAnimationFrame(this.renderLoopRequest);\r\n this.renderLoopRequest = 0;\r\n }\r\n }\r\n\r\n public requestAnimationFrame(renderLoop?: boolean): void {\r\n // optionally update the render loop\r\n if (renderLoop !== undefined && this.renderLoopEnabled !== renderLoop) {\r\n this.setEnableRenderLoop(renderLoop);\r\n }\r\n\r\n // skip because we have a render loop\r\n if (this.renderLoopRequest !== 0) {\r\n return;\r\n }\r\n\r\n // add the draw to the next frame\r\n this.renderLoopRequest = window.requestAnimationFrame(() => {\r\n if (this.htmlCanvas.width !== this.newWidth) {\r\n this.htmlCanvas.width = this.newWidth ?? 0;\r\n }\r\n\r\n if (this.htmlCanvas.height !== this.newHeight) {\r\n this.htmlCanvas.height = this.newHeight ?? 0;\r\n }\r\n\r\n this.renderFrameCallback();\r\n this.renderLoopRequest = 0;\r\n\r\n // we may want to draw the next frame\r\n if (this.renderLoopEnabled) {\r\n this.requestAnimationFrame();\r\n }\r\n });\r\n }\r\n\r\n public setCanvasSize(width: number, height: number): void {\r\n if (this.renderLoopRequest !== 0) {\r\n window.cancelAnimationFrame(this.renderLoopRequest);\r\n this.renderLoopRequest = 0;\r\n }\r\n\r\n this.newWidth = width;\r\n this.newHeight = height;\r\n\r\n if (this.htmlCanvas.width !== this.newWidth) {\r\n this.htmlCanvas.width = this.newWidth;\r\n }\r\n\r\n if (this.htmlCanvas.height !== this.newHeight) {\r\n this.htmlCanvas.height = this.newHeight;\r\n }\r\n\r\n this.requestAnimationFrame();\r\n }\r\n\r\n public static setCanvasSize(element: HTMLCanvasElement, width: number, height: number): void {\r\n const htmlCanvas = element as CanvasElement;\r\n if (!htmlCanvas || !htmlCanvas.Canvas) {\r\n return;\r\n }\r\n\r\n htmlCanvas.Canvas.setCanvasSize(width, height);\r\n }\r\n\r\n public static requestAnimationFrame(element: HTMLCanvasElement, renderLoop?: boolean): void {\r\n const htmlCanvas = element as CanvasElement;\r\n if (!htmlCanvas || !htmlCanvas.Canvas) {\r\n return;\r\n }\r\n\r\n htmlCanvas.Canvas.requestAnimationFrame(renderLoop);\r\n }\r\n\r\n static createWebGLContext(htmlCanvas: HTMLCanvasElement): WebGLRenderingContext | WebGL2RenderingContext {\r\n const contextAttributes = {\r\n alpha: 1,\r\n depth: 1,\r\n stencil: 8,\r\n antialias: 0,\r\n premultipliedAlpha: 1,\r\n preserveDrawingBuffer: 0,\r\n preferLowPowerToHighPerformance: 0,\r\n failIfMajorPerformanceCaveat: 0,\r\n majorVersion: 2,\r\n minorVersion: 0,\r\n enableExtensionsByDefault: 1,\r\n explicitSwapControl: 0,\r\n renderViaOffscreenBackBuffer: 1\r\n };\r\n\r\n const GL = (globalThis as any).AvaloniaGL;\r\n\r\n let ctx: WebGLRenderingContext = GL.createContext(htmlCanvas, contextAttributes);\r\n\r\n if (!ctx && contextAttributes.majorVersion > 1) {\r\n console.warn(\"Falling back to WebGL 1.0\");\r\n contextAttributes.majorVersion = 1;\r\n contextAttributes.minorVersion = 0;\r\n ctx = GL.createContext(htmlCanvas, contextAttributes);\r\n }\r\n\r\n return ctx;\r\n }\r\n}\r\n\r\ntype SizeWatcherElement = {\r\n SizeWatcher: SizeWatcherInstance;\r\n} & HTMLElement;\r\n\r\ninterface SizeWatcherInstance {\r\n callback: (width: number, height: number) => void;\r\n}\r\n\r\nexport class SizeWatcher {\r\n static observer: ResizeObserver;\r\n static elements: Map;\r\n private static lastMove: number;\r\n\r\n public static observe(element: HTMLElement, elementId: string | undefined, callback: (width: number, height: number) => void): void {\r\n if (!element || !callback) {\r\n return;\r\n }\r\n\r\n SizeWatcher.lastMove = Date.now();\r\n\r\n callback(element.clientWidth, element.clientHeight);\r\n\r\n const handleResize = (args: UIEvent) => {\r\n if (Date.now() - SizeWatcher.lastMove > 33) {\r\n callback(element.clientWidth, element.clientHeight);\r\n SizeWatcher.lastMove = Date.now();\r\n }\r\n };\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n }\r\n\r\n public static unobserve(elementId: string): void {\r\n if (!elementId || !SizeWatcher.observer) {\r\n return;\r\n }\r\n\r\n const element = SizeWatcher.elements.get(elementId);\r\n if (element) {\r\n SizeWatcher.elements.delete(elementId);\r\n SizeWatcher.observer.unobserve(element);\r\n }\r\n }\r\n\r\n static init(): void {\r\n if (SizeWatcher.observer) {\r\n return;\r\n }\r\n\r\n SizeWatcher.elements = new Map();\r\n SizeWatcher.observer = new ResizeObserver((entries) => {\r\n for (const entry of entries) {\r\n SizeWatcher.invoke(entry.target);\r\n }\r\n });\r\n }\r\n\r\n static invoke(element: Element): void {\r\n const watcherElement = element as SizeWatcherElement;\r\n const instance = watcherElement.SizeWatcher;\r\n\r\n if (!instance || !instance.callback) {\r\n return;\r\n }\r\n\r\n return instance.callback(element.clientWidth, element.clientHeight);\r\n }\r\n}\r\n\r\nexport class DpiWatcher {\r\n static lastDpi: number;\r\n static timerId: number;\r\n static callback: (old: number, newdpi: number) => void;\r\n\r\n public static getDpi(): number {\r\n return window.devicePixelRatio;\r\n }\r\n\r\n public static start(callback: (old: number, newdpi: number) => void): number {\r\n DpiWatcher.lastDpi = window.devicePixelRatio;\r\n DpiWatcher.timerId = window.setInterval(DpiWatcher.update, 1000);\r\n DpiWatcher.callback = callback;\r\n\r\n return DpiWatcher.lastDpi;\r\n }\r\n\r\n public static stop(): void {\r\n window.clearInterval(DpiWatcher.timerId);\r\n }\r\n\r\n static update(): void {\r\n if (!DpiWatcher.callback) {\r\n return;\r\n }\r\n\r\n const currentDpi = window.devicePixelRatio;\r\n const lastDpi = DpiWatcher.lastDpi;\r\n DpiWatcher.lastDpi = currentDpi;\r\n\r\n if (Math.abs(lastDpi - currentDpi) > 0.001) {\r\n DpiWatcher.callback(lastDpi, currentDpi);\r\n }\r\n }\r\n}\r\n", "// Based on https://github.com/component/textarea-caret-position/blob/master/index.js\r\nexport class CaretHelper {\r\n public static getCaretCoordinates(\r\n element: HTMLInputElement | HTMLTextAreaElement,\r\n position: number,\r\n options?: { debug: boolean }\r\n ) {\r\n if (!isBrowser) {\r\n throw new Error(\r\n \"textarea-caret-position#getCaretCoordinates should only be called in a browser\"\r\n );\r\n }\r\n\r\n const debug = options?.debug ?? false;\r\n if (debug) {\r\n const el = document.querySelector(\r\n \"#input-textarea-caret-position-mirror-div\"\r\n );\r\n if (el) el.parentNode?.removeChild(el);\r\n }\r\n\r\n // The mirror div will replicate the textarea's style\r\n const div = document.createElement(\"div\");\r\n div.id = \"input-textarea-caret-position-mirror-div\";\r\n document.body.appendChild(div);\r\n\r\n const style = div.style;\r\n const computed = window.getComputedStyle\r\n ? window.getComputedStyle(element)\r\n : ((element as any).currentStyle as CSSStyleDeclaration); // currentStyle for IE < 9\r\n const isInput = element.nodeName === \"INPUT\";\r\n\r\n // Default textarea styles\r\n style.whiteSpace = \"pre-wrap\";\r\n if (!isInput) style.wordWrap = \"break-word\"; // only for textarea-s\r\n\r\n // Position off-screen\r\n style.position = \"absolute\"; // required to return coordinates properly\r\n if (!debug) style.visibility = \"hidden\"; // not 'display: none' because we want rendering\r\n\r\n // Transfer the element's properties to the div\r\n properties.forEach((prop: string) => {\r\n if (isInput && prop === \"lineHeight\") {\r\n // Special case for s because text is rendered centered and line height may be != height\r\n if (computed.boxSizing === \"border-box\") {\r\n const height = parseInt(computed.height);\r\n const outerHeight =\r\n parseInt(computed.paddingTop) +\r\n parseInt(computed.paddingBottom) +\r\n parseInt(computed.borderTopWidth) +\r\n parseInt(computed.borderBottomWidth);\r\n const targetHeight = outerHeight + parseInt(computed.lineHeight);\r\n if (height > targetHeight) {\r\n style.lineHeight = `${height - outerHeight}px`;\r\n } else if (height === targetHeight) {\r\n style.lineHeight = computed.lineHeight;\r\n } else {\r\n style.lineHeight = \"0\";\r\n }\r\n } else {\r\n style.lineHeight = computed.height;\r\n }\r\n } else {\r\n (style as any)[prop] = (computed as any)[prop];\r\n }\r\n });\r\n\r\n if (isFirefox) {\r\n // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\r\n if (element.scrollHeight > parseInt(computed.height)) {\r\n style.overflowY = \"scroll\";\r\n }\r\n } else {\r\n style.overflow = \"hidden\"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\r\n }\r\n\r\n div.textContent = element.value.substring(0, position);\r\n // The second special handling for input type=\"text\" vs textarea:\r\n // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\r\n if (isInput) div.textContent = div.textContent.replace(/\\s/g, \"\\u00a0\");\r\n\r\n const span = document.createElement(\"span\");\r\n // Wrapping must be replicated *exactly*, including when a long word gets\r\n // onto the next line, with whitespace at the end of the line before (#7).\r\n // The *only* reliable way to do that is to copy the *entire* rest of the\r\n // textarea's content into the created at the caret position.\r\n // For inputs, just '.' would be enough, but no need to bother.\r\n span.textContent = element.value.substring(position) || \".\"; // || because a completely empty faux span doesn't render at all\r\n div.appendChild(span);\r\n\r\n const coordinates = {\r\n top: span.offsetTop + parseInt(computed.borderTopWidth),\r\n left: span.offsetLeft + parseInt(computed.borderLeftWidth),\r\n height: parseInt(computed.lineHeight)\r\n };\r\n\r\n if (debug) {\r\n span.style.backgroundColor = \"#aaa\";\r\n } else {\r\n document.body.removeChild(div);\r\n }\r\n\r\n return coordinates;\r\n }\r\n}\r\n\r\nconst properties = [\r\n \"direction\", // RTL support\r\n \"boxSizing\",\r\n \"width\", // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\r\n \"height\",\r\n \"overflowX\",\r\n \"overflowY\", // copy the scrollbar for IE\r\n\r\n \"borderTopWidth\",\r\n \"borderRightWidth\",\r\n \"borderBottomWidth\",\r\n \"borderLeftWidth\",\r\n \"borderStyle\",\r\n\r\n \"paddingTop\",\r\n \"paddingRight\",\r\n \"paddingBottom\",\r\n \"paddingLeft\",\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n \"fontStyle\",\r\n \"fontVariant\",\r\n \"fontWeight\",\r\n \"fontStretch\",\r\n \"fontSize\",\r\n \"fontSizeAdjust\",\r\n \"lineHeight\",\r\n \"fontFamily\",\r\n\r\n \"textAlign\",\r\n \"textTransform\",\r\n \"textIndent\",\r\n \"textDecoration\", // might not make a difference, but better be safe\r\n\r\n \"letterSpacing\",\r\n \"wordSpacing\",\r\n\r\n \"tabSize\",\r\n \"MozTabSize\"\r\n];\r\n\r\nconst isBrowser = typeof window !== \"undefined\";\r\nconst isFirefox = isBrowser && (window as any).mozInnerScreenX != null;\r\n", "import { CaretHelper } from \"./caretHelper\";\r\n\r\nenum RawInputModifiers {\r\n None = 0,\r\n Alt = 1,\r\n Control = 2,\r\n Shift = 4,\r\n Meta = 8,\r\n\r\n LeftMouseButton = 16,\r\n RightMouseButton = 32,\r\n MiddleMouseButton = 64,\r\n XButton1MouseButton = 128,\r\n XButton2MouseButton = 256,\r\n KeyboardMask = Alt | Control | Shift | Meta,\r\n\r\n PenInverted = 512,\r\n PenEraser = 1024,\r\n PenBarrelButton = 2048\r\n}\r\n\r\n/*\r\n* This is a hack to handle Mozilla clipboard events in a more convinient way for framework users.\r\n* In the browser, events go in order KeyDown -> Paste -> KeyUp.\r\n* On KeyDown we trigger Avalonia handlers, which might execute readClipboardText.\r\n* When readClipboardText was executed, we mark ClipboardState as Pending and setup clipboard promise,\r\n* which will un-handle KeyDown event, basically allowing browser to pass a Paste event properly.\r\n* On actual Paste event we execute promise callbacks, resuming async operation, and returning pasted text to the app.\r\n* Note #1, on every KeyUp event we will reset all the state and reject pending promises if any, as this event it expected to come after Paste.\r\n* Note #2, whole this code will be executed only on legacy browsers like Mozilla, where clipboard.readText is not available.\r\n* Note #3, with all of these hacks Clipboard.ReadText will still work only on actual \"paste\" gesture initiated by user.\r\n* */\r\nenum ClipboardState {\r\n None,\r\n Ready,\r\n Pending\r\n}\r\n\r\nexport class InputHelper {\r\n static clipboardState: ClipboardState = ClipboardState.None;\r\n static resolveClipboard?: any;\r\n static rejectClipboard?: any;\r\n\r\n public static initializeBackgroundHandlers() {\r\n if (this.clipboardState !== ClipboardState.None) {\r\n return;\r\n }\r\n\r\n globalThis.addEventListener(\"paste\", (args: any) => {\r\n if (this.clipboardState === ClipboardState.Pending) {\r\n this.resolveClipboard(args.clipboardData.getData(\"text\"));\r\n }\r\n });\r\n this.clipboardState = ClipboardState.Ready;\r\n }\r\n\r\n public static async readClipboardText(): Promise {\r\n if (globalThis.navigator.clipboard.readText) {\r\n return await globalThis.navigator.clipboard.readText();\r\n } else {\r\n try {\r\n return await new Promise((resolve, reject) => {\r\n this.clipboardState = ClipboardState.Pending;\r\n this.resolveClipboard = resolve;\r\n this.rejectClipboard = reject;\r\n });\r\n } finally {\r\n this.clipboardState = ClipboardState.Ready;\r\n this.resolveClipboard = null;\r\n this.rejectClipboard = null;\r\n }\r\n }\r\n }\r\n\r\n public static subscribeKeyEvents(\r\n element: HTMLInputElement,\r\n keyDownCallback: (code: string, key: string, modifiers: RawInputModifiers) => boolean,\r\n keyUpCallback: (code: string, key: string, modifiers: RawInputModifiers) => boolean) {\r\n const keyDownHandler = (args: KeyboardEvent) => {\r\n if (keyDownCallback(args.code, args.key, this.getModifiers(args))) {\r\n if (this.clipboardState !== ClipboardState.Pending) {\r\n args.preventDefault();\r\n }\r\n }\r\n };\r\n element.addEventListener(\"keydown\", keyDownHandler);\r\n\r\n const keyUpHandler = (args: KeyboardEvent) => {\r\n if (keyUpCallback(args.code, args.key, this.getModifiers(args))) {\r\n args.preventDefault();\r\n }\r\n if (this.rejectClipboard) {\r\n this.rejectClipboard();\r\n }\r\n };\r\n\r\n element.addEventListener(\"keyup\", keyUpHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"keydown\", keyDownHandler);\r\n element.removeEventListener(\"keyup\", keyUpHandler);\r\n };\r\n }\r\n\r\n public static subscribeTextEvents(\r\n element: HTMLInputElement,\r\n beforeInputCallback: (args: InputEvent, start: number, end: number) => boolean,\r\n compositionStartCallback: (args: CompositionEvent) => boolean,\r\n compositionUpdateCallback: (args: CompositionEvent) => boolean,\r\n compositionEndCallback: (args: CompositionEvent) => boolean) {\r\n const compositionStartHandler = (args: CompositionEvent) => {\r\n if (compositionStartCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionstart\", compositionStartHandler);\r\n\r\n const beforeInputHandler = (args: InputEvent) => {\r\n const ranges = args.getTargetRanges();\r\n let start = -1;\r\n let end = -1;\r\n if (ranges.length > 0) {\r\n start = ranges[0].startOffset;\r\n end = ranges[0].endOffset;\r\n }\r\n\r\n if (args.inputType === \"insertCompositionText\") {\r\n start = 2;\r\n end = start + 2;\r\n }\r\n if (beforeInputCallback(args, start, end)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"beforeinput\", beforeInputHandler);\r\n\r\n const compositionUpdateHandler = (args: CompositionEvent) => {\r\n if (compositionUpdateCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n\r\n const compositionEndHandler = (args: CompositionEvent) => {\r\n if (compositionEndCallback(args)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"compositionend\", compositionEndHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"compositionstart\", compositionStartHandler);\r\n element.removeEventListener(\"compositionupdate\", compositionUpdateHandler);\r\n element.removeEventListener(\"compositionend\", compositionEndHandler);\r\n };\r\n }\r\n\r\n public static subscribePointerEvents(\r\n element: HTMLInputElement,\r\n pointerMoveCallback: (args: PointerEvent) => boolean,\r\n pointerDownCallback: (args: PointerEvent) => boolean,\r\n pointerUpCallback: (args: PointerEvent) => boolean,\r\n pointerCancelCallback: (args: PointerEvent) => boolean,\r\n wheelCallback: (args: WheelEvent) => boolean\r\n ) {\r\n const pointerMoveHandler = (args: PointerEvent) => {\r\n pointerMoveCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerDownHandler = (args: PointerEvent) => {\r\n pointerDownCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerUpHandler = (args: PointerEvent) => {\r\n pointerUpCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const pointerCancelHandler = (args: PointerEvent) => {\r\n pointerCancelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n const wheelHandler = (args: WheelEvent) => {\r\n wheelCallback(args);\r\n args.preventDefault();\r\n };\r\n\r\n element.addEventListener(\"pointermove\", pointerMoveHandler);\r\n element.addEventListener(\"pointerdown\", pointerDownHandler);\r\n element.addEventListener(\"pointerup\", pointerUpHandler);\r\n element.addEventListener(\"wheel\", wheelHandler);\r\n element.addEventListener(\"pointercancel\", pointerCancelHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"pointerover\", pointerMoveHandler);\r\n element.removeEventListener(\"pointerdown\", pointerDownHandler);\r\n element.removeEventListener(\"pointerup\", pointerUpHandler);\r\n element.removeEventListener(\"pointercancel\", pointerCancelHandler);\r\n element.removeEventListener(\"wheel\", wheelHandler);\r\n };\r\n }\r\n\r\n public static subscribeInputEvents(\r\n element: HTMLInputElement,\r\n inputCallback: (value: string) => boolean\r\n ) {\r\n const inputHandler = (args: Event) => {\r\n if (inputCallback((args as any).value)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"input\", inputHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"input\", inputHandler);\r\n };\r\n }\r\n\r\n public static subscribeDropEvents(\r\n element: HTMLInputElement,\r\n dragEvent: (args: any) => boolean\r\n ) {\r\n const dragHandler = (args: Event) => {\r\n if (dragEvent(args as any)) {\r\n args.preventDefault();\r\n }\r\n };\r\n element.addEventListener(\"dragover\", dragHandler);\r\n element.addEventListener(\"dragenter\", dragHandler);\r\n element.addEventListener(\"dragleave\", dragHandler);\r\n element.addEventListener(\"drop\", dragHandler);\r\n\r\n return () => {\r\n element.removeEventListener(\"dragover\", dragHandler);\r\n element.removeEventListener(\"dragenter\", dragHandler);\r\n element.removeEventListener(\"dragleave\", dragHandler);\r\n element.removeEventListener(\"drop\", dragHandler);\r\n };\r\n }\r\n\r\n public static getCoalescedEvents(pointerEvent: PointerEvent): PointerEvent[] {\r\n return pointerEvent.getCoalescedEvents();\r\n }\r\n\r\n public static subscribeKeyboardGeometryChange(\r\n element: HTMLInputElement,\r\n handler: (args: any) => boolean) {\r\n if (\"virtualKeyboard\" in navigator) {\r\n // (navigator as any).virtualKeyboard.overlaysContent = true;\r\n (navigator as any).virtualKeyboard.addEventListener(\"geometrychange\", (event: any) => {\r\n const elementRect = element.getBoundingClientRect();\r\n const keyboardRect = event.target.boundingRect as DOMRect;\r\n handler({\r\n x: keyboardRect.x - elementRect.x,\r\n y: keyboardRect.y - elementRect.y,\r\n width: keyboardRect.width,\r\n height: keyboardRect.height\r\n });\r\n });\r\n }\r\n }\r\n\r\n public static subscribeVisibilityChange(\r\n handler: (state: boolean) => void): boolean {\r\n document.addEventListener(\"visibilitychange\", () => {\r\n handler(document.visibilityState === \"visible\");\r\n });\r\n return document.visibilityState === \"visible\";\r\n }\r\n\r\n public static clearInput(inputElement: HTMLInputElement) {\r\n inputElement.value = \"\";\r\n }\r\n\r\n public static focusElement(inputElement: HTMLElement) {\r\n inputElement.focus();\r\n }\r\n\r\n public static setCursor(inputElement: HTMLInputElement, kind: string) {\r\n if (kind === \"default\") {\r\n inputElement.style.removeProperty(\"cursor\");\r\n } else {\r\n inputElement.style.cursor = kind;\r\n }\r\n }\r\n\r\n public static setBounds(inputElement: HTMLInputElement, x: number, y: number, caretWidth: number, caretHeight: number, caret: number) {\r\n inputElement.style.left = (x).toFixed(0) + \"px\";\r\n inputElement.style.top = (y).toFixed(0) + \"px\";\r\n\r\n const { left, top } = CaretHelper.getCaretCoordinates(inputElement, caret);\r\n\r\n inputElement.style.left = (x - left).toFixed(0) + \"px\";\r\n inputElement.style.top = (y - top).toFixed(0) + \"px\";\r\n }\r\n\r\n public static hide(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"none\";\r\n }\r\n\r\n public static show(inputElement: HTMLInputElement) {\r\n inputElement.style.display = \"block\";\r\n }\r\n\r\n public static setSurroundingText(inputElement: HTMLInputElement, text: string, start: number, end: number) {\r\n if (!inputElement) {\r\n return;\r\n }\r\n\r\n inputElement.value = text;\r\n inputElement.setSelectionRange(start, end);\r\n inputElement.style.width = \"20px\";\r\n inputElement.style.width = `${inputElement.scrollWidth}px`;\r\n }\r\n\r\n private static getModifiers(args: KeyboardEvent): RawInputModifiers {\r\n let modifiers = RawInputModifiers.None;\r\n\r\n if (args.ctrlKey) { modifiers |= RawInputModifiers.Control; }\r\n if (args.altKey) { modifiers |= RawInputModifiers.Alt; }\r\n if (args.shiftKey) { modifiers |= RawInputModifiers.Shift; }\r\n if (args.metaKey) { modifiers |= RawInputModifiers.Meta; }\r\n\r\n return modifiers;\r\n }\r\n}\r\n", "export class AvaloniaDOM {\r\n public static addClass(element: HTMLElement, className: string): void {\r\n element.classList.add(className);\r\n }\r\n\r\n static observeDarkMode(observer: (isDarkMode: boolean, isHighContrast: boolean) => boolean) {\r\n if (globalThis.matchMedia === undefined) {\r\n return false;\r\n }\r\n\r\n const colorShemeMedia = globalThis.matchMedia(\"(prefers-color-scheme: dark)\");\r\n const prefersContrastMedia = globalThis.matchMedia(\"(prefers-contrast: more)\");\r\n\r\n colorShemeMedia.addEventListener(\"change\", (args: MediaQueryListEvent) => {\r\n observer(args.matches, prefersContrastMedia.matches);\r\n });\r\n prefersContrastMedia.addEventListener(\"change\", (args: MediaQueryListEvent) => {\r\n observer(colorShemeMedia.matches, args.matches);\r\n });\r\n\r\n return {\r\n isDarkMode: colorShemeMedia.matches,\r\n isHighContrast: prefersContrastMedia.matches\r\n };\r\n }\r\n\r\n static createAvaloniaHost(host: HTMLElement) {\r\n const randomIdPart = Math.random().toString(36).replace(/[^a-z]+/g, \"\").substr(2, 10);\r\n\r\n // Root element\r\n host.classList.add(\"avalonia-container\");\r\n host.tabIndex = 0;\r\n host.oncontextmenu = function () { return false; };\r\n host.style.overflow = \"hidden\";\r\n host.style.touchAction = \"none\";\r\n\r\n // Rendering target canvas\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.id = `canvas${randomIdPart}`;\r\n canvas.classList.add(\"avalonia-canvas\");\r\n canvas.style.width = \"100%\";\r\n canvas.style.position = \"absolute\";\r\n\r\n // Native controls host\r\n const nativeHost = document.createElement(\"div\");\r\n nativeHost.id = `nativeHost${randomIdPart}`;\r\n nativeHost.classList.add(\"avalonia-native-host\");\r\n nativeHost.style.left = \"0px\";\r\n nativeHost.style.top = \"0px\";\r\n nativeHost.style.width = \"100%\";\r\n nativeHost.style.height = \"100%\";\r\n nativeHost.style.position = \"absolute\";\r\n\r\n // IME\r\n const inputElement = document.createElement(\"input\");\r\n inputElement.id = `inputElement${randomIdPart}`;\r\n inputElement.classList.add(\"avalonia-input-element\");\r\n inputElement.autocapitalize = \"none\";\r\n inputElement.type = \"text\";\r\n inputElement.spellcheck = false;\r\n inputElement.style.padding = \"0\";\r\n inputElement.style.margin = \"0\";\r\n inputElement.style.position = \"absolute\";\r\n inputElement.style.overflow = \"hidden\";\r\n inputElement.style.borderStyle = \"hidden\";\r\n inputElement.style.outline = \"none\";\r\n inputElement.style.background = \"transparent\";\r\n inputElement.style.color = \"transparent\";\r\n inputElement.style.display = \"none\";\r\n inputElement.style.height = \"20px\";\r\n inputElement.style.zIndex = \"-1\";\r\n inputElement.onpaste = function () { return false; };\r\n inputElement.oncopy = function () { return false; };\r\n inputElement.oncut = function () { return false; };\r\n\r\n host.prepend(inputElement);\r\n host.prepend(nativeHost);\r\n host.prepend(canvas);\r\n\r\n return {\r\n host,\r\n canvas,\r\n nativeHost,\r\n inputElement\r\n };\r\n }\r\n\r\n public static isFullscreen(): boolean {\r\n return document.fullscreenElement != null;\r\n }\r\n\r\n public static async setFullscreen(isFullscreen: boolean) {\r\n if (isFullscreen) {\r\n const doc = document.documentElement;\r\n await doc.requestFullscreen();\r\n } else {\r\n await document.exitFullscreen();\r\n }\r\n }\r\n\r\n public static getSafeAreaPadding(): number[] {\r\n const top = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--sat\"));\r\n const bottom = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--sab\"));\r\n const left = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--sal\"));\r\n const right = parseFloat(getComputedStyle(document.documentElement).getPropertyValue(\"--sar\"));\r\n\r\n return [left, top, bottom, right];\r\n }\r\n}\r\n", "export class Caniuse {\r\n public static hasNativeFilePicker(): boolean {\r\n return \"showSaveFilePicker\" in globalThis;\r\n }\r\n\r\n public static isMobile(): boolean {\r\n const userAgentData = (globalThis.navigator as any)?.userAgentData;\r\n if (userAgentData) {\r\n return userAgentData.mobile;\r\n }\r\n\r\n const userAgent = navigator.userAgent;\r\n const regex1 = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;\r\n const regex2 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;\r\n return regex1.test(userAgent) || regex2.test(userAgent.substr(0, 4));\r\n }\r\n}\r\n", "import FileSystemWritableFileStream from \"native-file-system-adapter/types/src/FileSystemWritableFileStream\";\r\nimport { IMemoryView } from \"../../types/dotnet\";\r\n\r\nexport class StreamHelper {\r\n public static async seek(stream: FileSystemWritableFileStream, position: number) {\r\n return await stream.seek(position);\r\n }\r\n\r\n public static async truncate(stream: FileSystemWritableFileStream, size: number) {\r\n return await stream.truncate(size);\r\n }\r\n\r\n public static async close(stream: FileSystemWritableFileStream) {\r\n return await stream.close();\r\n }\r\n\r\n public static async write(stream: FileSystemWritableFileStream, span: IMemoryView) {\r\n const array = new Uint8Array(span.byteLength);\r\n span.copyTo(array);\r\n\r\n return await stream.write(array);\r\n }\r\n\r\n public static byteLength(stream: Blob) {\r\n return stream.size;\r\n }\r\n\r\n public static async sliceArrayBuffer(stream: Blob, offset: number, count: number) {\r\n const buffer = await stream.slice(offset, offset + count).arrayBuffer();\r\n return new Uint8Array(buffer);\r\n }\r\n\r\n public static toMemoryView(buffer: Uint8Array): Uint8Array {\r\n return buffer;\r\n }\r\n}\r\n", "class NativeControlHostTopLevelAttachment {\r\n _child?: HTMLElement;\r\n _host?: HTMLElement;\r\n}\r\n\r\nexport class NativeControlHost {\r\n public static createDefaultChild(parent?: HTMLElement): HTMLElement {\r\n return document.createElement(\"div\");\r\n }\r\n\r\n public static createAttachment(): NativeControlHostTopLevelAttachment {\r\n return new NativeControlHostTopLevelAttachment();\r\n }\r\n\r\n public static initializeWithChildHandle(element: NativeControlHostTopLevelAttachment, child: HTMLElement): void {\r\n element._child = child;\r\n element._child.style.position = \"absolute\";\r\n }\r\n\r\n public static attachTo(element: NativeControlHostTopLevelAttachment, host?: HTMLElement): void {\r\n if (element._host && element._child) {\r\n element._host.removeChild(element._child);\r\n }\r\n\r\n element._host = host;\r\n\r\n if (element._host && element._child) {\r\n element._host.appendChild(element._child);\r\n }\r\n }\r\n\r\n public static showInBounds(element: NativeControlHostTopLevelAttachment, x: number, y: number, width: number, height: number): void {\r\n if (element._child) {\r\n element._child.style.top = `${y}px`;\r\n element._child.style.left = `${x}px`;\r\n element._child.style.width = `${width}px`;\r\n element._child.style.height = `${height}px`;\r\n element._child.style.display = \"block\";\r\n }\r\n }\r\n\r\n public static hideWithSize(element: NativeControlHostTopLevelAttachment, width: number, height: number): void {\r\n if (element._child) {\r\n element._child.style.width = `${width}px`;\r\n element._child.style.height = `${height}px`;\r\n element._child.style.display = \"none\";\r\n }\r\n }\r\n\r\n public static releaseChild(element: NativeControlHostTopLevelAttachment): void {\r\n if (element._child) {\r\n element._child = undefined;\r\n }\r\n }\r\n}\r\n", "export class NavigationHelper {\r\n public static addBackHandler(backHandlerCallback: () => Boolean) {\r\n history.pushState(null, \"\", window.location.href);\r\n window.onpopstate = () => {\r\n const handled = backHandlerCallback();\r\n\r\n if (!handled) {\r\n history.back();\r\n } else {\r\n history.forward();\r\n }\r\n };\r\n }\r\n}\r\n", "export class GeneralHelpers {\r\n public static itemsArrayAt(instance: any, key: any): any[] {\r\n const items = instance[key];\r\n if (!items) {\r\n return [];\r\n }\r\n\r\n const retItems = [];\r\n for (let i = 0; i < items.length; i++) {\r\n retItems[i] = items[i];\r\n }\r\n return retItems;\r\n }\r\n\r\n public static itemAt(instance: any, key: any): any {\r\n const item = instance[key];\r\n return item;\r\n }\r\n\r\n public static callMethod(instance: any, name: string /*, args */): any {\r\n const args = Array.prototype.slice.call(arguments, 2);\r\n return instance[name].apply(instance, args);\r\n }\r\n}\r\n", "import { SizeWatcher, DpiWatcher, Canvas } from \"./avalonia/canvas\";\r\nimport { InputHelper } from \"./avalonia/input\";\r\nimport { AvaloniaDOM } from \"./avalonia/dom\";\r\nimport { Caniuse } from \"./avalonia/caniuse\";\r\nimport { StreamHelper } from \"./avalonia/stream\";\r\nimport { NativeControlHost } from \"./avalonia/nativeControlHost\";\r\nimport { NavigationHelper } from \"./avalonia/navigationHelper\";\r\nimport { GeneralHelpers } from \"./avalonia/generalHelpers\";\r\n\r\nasync function registerServiceWorker(path: string, scope: string | undefined) {\r\n if (\"serviceWorker\" in navigator) {\r\n await globalThis.navigator.serviceWorker.register(path, scope ? { scope } : undefined);\r\n }\r\n}\r\n\r\nexport {\r\n Caniuse,\r\n Canvas,\r\n InputHelper,\r\n SizeWatcher,\r\n DpiWatcher,\r\n AvaloniaDOM,\r\n StreamHelper,\r\n NativeControlHost,\r\n NavigationHelper,\r\n GeneralHelpers,\r\n registerServiceWorker\r\n};\r\n"],
- "mappings": "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",
- "names": ["Canvas", "useGL", "element", "renderFrameCallback", "ctx", "GL", "GLctx", "fbo", "elementId", "view", "htmlCanvas", "enable", "renderLoop", "_a", "_b", "width", "height", "contextAttributes", "SizeWatcher", "callback", "handleResize", "args", "entries", "entry", "instance", "DpiWatcher", "currentDpi", "lastDpi", "CaretHelper", "element", "position", "options", "_a", "_b", "isBrowser", "debug", "el", "div", "style", "computed", "isInput", "properties", "prop", "height", "outerHeight", "targetHeight", "isFirefox", "span", "coordinates", "InputHelper", "args", "resolve", "reject", "element", "keyDownCallback", "keyUpCallback", "keyDownHandler", "keyUpHandler", "beforeInputCallback", "compositionStartCallback", "compositionUpdateCallback", "compositionEndCallback", "compositionStartHandler", "beforeInputHandler", "ranges", "start", "end", "compositionUpdateHandler", "compositionEndHandler", "pointerMoveCallback", "pointerDownCallback", "pointerUpCallback", "pointerCancelCallback", "wheelCallback", "pointerMoveHandler", "pointerDownHandler", "pointerUpHandler", "pointerCancelHandler", "wheelHandler", "inputCallback", "inputHandler", "dragEvent", "dragHandler", "pointerEvent", "handler", "event", "elementRect", "keyboardRect", "inputElement", "kind", "x", "y", "caretWidth", "caretHeight", "caret", "left", "top", "CaretHelper", "text", "modifiers", "AvaloniaDOM", "element", "className", "observer", "colorShemeMedia", "prefersContrastMedia", "args", "host", "randomIdPart", "canvas", "nativeHost", "inputElement", "isFullscreen", "top", "bottom", "left", "right", "Caniuse", "_a", "userAgentData", "userAgent", "regex1", "regex2", "StreamHelper", "stream", "position", "size", "span", "array", "offset", "count", "buffer", "NativeControlHostTopLevelAttachment", "NativeControlHost", "parent", "element", "child", "host", "x", "y", "width", "height", "NavigationHelper", "backHandlerCallback", "GeneralHelpers", "instance", "key", "items", "retItems", "i", "name", "args", "registerServiceWorker", "path", "scope"]
-}
diff --git a/dotnet.js b/dotnet.js
deleted file mode 100644
index 13a17ac..0000000
--- a/dotnet.js
+++ /dev/null
@@ -1,33 +0,0 @@
-//! Licensed to the .NET Foundation under one or more agreements.
-//! The .NET Foundation licenses this file to you under the MIT license.
-var __dotnet_runtime=function(e){"use strict";var t="7.0.15",n=false,r="Release";let o,s,i,a,c,u,l,f;const _={},d={};let m;function g(e,t){s=t.internal,i=t.marshaled_imports,o=t.module,w(e),a=e.isNode,c=e.isShell,u=e.isWeb,l=e.isWorker,f=e.isPThread,b.quit=e.quit_,b.ExitStatus=e.ExitStatus,b.requirePromise=e.requirePromise}function w(e){a=e.isNode,c=e.isShell,u=e.isWeb,l=e.isWorker,f=e.isPThread}function h(e){m=e}const p=undefined,b={javaScriptExports:{},mono_wasm_load_runtime_done:false,mono_wasm_bindings_is_ready:false,maxParallelDownloads:16,config:{environmentVariables:{}},diagnosticTracing:false},y=0,v=0,E=0,A=0,S=0,O=0,x=-1,j=0,$=0,N=0,k=0;function T(e){return void 0===e||null===e}const R=[[true,"mono_wasm_register_root","number",["number","number","string"]],[true,"mono_wasm_deregister_root",null,["number"]],[true,"mono_wasm_string_get_data",null,["number","number","number","number"]],[true,"mono_wasm_string_get_data_ref",null,["number","number","number","number"]],[true,"mono_wasm_set_is_debugger_attached","void",["bool"]],[true,"mono_wasm_send_dbg_command","bool",["number","number","number","number","number"]],[true,"mono_wasm_send_dbg_command_with_parms","bool",["number","number","number","number","number","number","string"]],[true,"mono_wasm_setenv",null,["string","string"]],[true,"mono_wasm_parse_runtime_options",null,["number","number"]],[true,"mono_wasm_strdup","number",["string"]],[true,"mono_background_exec",null,[]],[true,"mono_set_timeout_exec",null,[]],[true,"mono_wasm_load_icu_data","number",["number"]],[true,"mono_wasm_get_icudt_name","string",["string"]],[false,"mono_wasm_add_assembly","number",["string","number","number"]],[true,"mono_wasm_add_satellite_assembly","void",["string","string","number","number"]],[false,"mono_wasm_load_runtime",null,["string","number"]],[true,"mono_wasm_change_debugger_log_level","void",["number"]],[true,"mono_wasm_get_corlib","number",[]],[true,"mono_wasm_assembly_load","number",["string"]],[true,"mono_wasm_find_corlib_class","number",["string","string"]],[true,"mono_wasm_assembly_find_class","number",["number","string","string"]],[true,"mono_wasm_runtime_run_module_cctor","void",["number"]],[true,"mono_wasm_find_corlib_type","number",["string","string"]],[true,"mono_wasm_assembly_find_type","number",["number","string","string"]],[true,"mono_wasm_assembly_find_method","number",["number","string","number"]],[true,"mono_wasm_invoke_method","number",["number","number","number","number"]],[false,"mono_wasm_invoke_method_ref","void",["number","number","number","number","number"]],[true,"mono_wasm_string_get_utf8","number",["number"]],[true,"mono_wasm_string_from_utf16_ref","void",["number","number","number"]],[true,"mono_wasm_get_obj_type","number",["number"]],[true,"mono_wasm_array_length","number",["number"]],[true,"mono_wasm_array_get","number",["number","number"]],[true,"mono_wasm_array_get_ref","void",["number","number","number"]],[false,"mono_wasm_obj_array_new","number",["number"]],[false,"mono_wasm_obj_array_new_ref","void",["number","number"]],[false,"mono_wasm_obj_array_set","void",["number","number","number"]],[false,"mono_wasm_obj_array_set_ref","void",["number","number","number"]],[true,"mono_wasm_register_bundled_satellite_assemblies","void",[]],[false,"mono_wasm_try_unbox_primitive_and_get_type_ref","number",["number","number","number"]],[true,"mono_wasm_box_primitive_ref","void",["number","number","number","number"]],[true,"mono_wasm_intern_string_ref","void",["number"]],[true,"mono_wasm_assembly_get_entry_point","number",["number"]],[true,"mono_wasm_get_delegate_invoke_ref","number",["number"]],[true,"mono_wasm_string_array_new_ref","void",["number","number"]],[true,"mono_wasm_typed_array_new_ref","void",["number","number","number","number","number"]],[true,"mono_wasm_class_get_type","number",["number"]],[true,"mono_wasm_type_get_class","number",["number"]],[true,"mono_wasm_get_type_name","string",["number"]],[true,"mono_wasm_get_type_aqn","string",["number"]],[true,"mono_wasm_event_pipe_enable","bool",["string","number","number","string","bool","number"]],[true,"mono_wasm_event_pipe_session_start_streaming","bool",["number"]],[true,"mono_wasm_event_pipe_session_disable","bool",["number"]],[true,"mono_wasm_diagnostic_server_create_thread","bool",["string","number"]],[true,"mono_wasm_diagnostic_server_thread_attach_to_runtime","void",[]],[true,"mono_wasm_diagnostic_server_post_resume_runtime","void",[]],[true,"mono_wasm_diagnostic_server_create_stream","number",[]],[true,"mono_wasm_string_from_js","number",["string"]],[false,"mono_wasm_exit","void",["number"]],[true,"mono_wasm_getenv","number",["string"]],[true,"mono_wasm_set_main_args","void",["number","number"]],[false,"mono_wasm_enable_on_demand_gc","void",["number"]],[false,"mono_profiler_init_aot","void",["number"]],[false,"mono_wasm_exec_regression","number",["number","string"]],[false,"mono_wasm_invoke_method_bound","number",["number","number"]],[true,"mono_wasm_write_managed_pointer_unsafe","void",["number","number"]],[true,"mono_wasm_copy_managed_pointer","void",["number","number"]],[true,"mono_wasm_i52_to_f64","number",["number","number"]],[true,"mono_wasm_u52_to_f64","number",["number","number"]],[true,"mono_wasm_f64_to_i52","number",["number","number"]],[true,"mono_wasm_f64_to_u52","number",["number","number"]]],M={};function I(){const e=!!f;for(const t of R){const n=M,[r,s,i,a,c]=t;if(r||e)n[s]=function(...e){const t=o.cwrap(s,i,a,c);return n[s]=t,t(...e)};else{const e=o.cwrap(s,i,a,c);n[s]=e}}}function D(e,t,n){const r=C(e,t,n);let o="",s=0,i=0,a=0,c=0,u=0,l=0;const f=16777215,_=262143,d=4095,m=63,g=18,w=12,h=6,p=0;for(;s=r.read(),i=r.read(),a=r.read(),null!==s;)null===i&&(i=0,u+=1),null===a&&(a=0,u+=1),l=s<<16|i<<8|a<<0,c=(l&f)>>g,o+=U[c],c=(l&_)>>w,o+=U[c],u<2&&(c=(l&d)>>6,o+=U[c]),2===u?o+="==":1===u?o+="=":(c=(l&m)>>0,o+=U[c]);return o}const U=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"];function C(e,t,n){let r="number"===typeof t?t:0,o;o="number"===typeof n?r+n:e.length-r;const s={read:function(){if(r>=o)return null;const t=e[r];return r+=1,t}};return Object.defineProperty(s,"eof",{get:function(){return r>=o},configurable:true,enumerable:true}),s}const P=new Map;P.remove=function(e){const t=this.get(e);return this.delete(e),t};let W={},F=0,B=-1,V,H,z;function mono_wasm_runtime_ready(){if(s.mono_wasm_runtime_is_ready=b.mono_wasm_runtime_is_ready=true,F=0,W={},B=-1,globalThis.dotnetDebugger)debugger;else console.debug("mono_wasm_runtime_ready","fe00e07a-5519-4dfe-b35a-f867dbaf2e28")}function mono_wasm_fire_debugger_agent_message(){debugger}function L(e,t,n,r){const s=undefined,i=undefined,a={res_ok:e,res:{id:t,value:D(new Uint8Array(o.HEAPU8.buffer,n,r))}};P.has(t)&&console.warn(`MONO_WASM: Adding an id (${t}) that already exists in commands_received`),P.set(t,a)}function J(e){e.length>B&&(V&&o._free(V),B=Math.max(e.length,B,256),V=o._malloc(B));const t=atob(e);for(let e=0;e{const t=setInterval((()=>{1==b.waitForDebugger&&(clearInterval(t),e())}),100)}))}function te(){-1==b.waitForDebugger&&(b.waitForDebugger=1),M.mono_wasm_set_is_debugger_attached(true)}function ne(e,t){H=o.UTF8ToString(e).concat(".dll"),z=t,console.assert(true,`Adding an entrypoint breakpoint ${H} at method token ${z}`);debugger}function re(e,t){if(e.startsWith("dotnet:array:")){let e;if(void 0===t.items)return e=t.map((e=>e.value)),e;if(void 0===t.dimensionsDetails||1===t.dimensionsDetails.length)return e=t.items.map((e=>e.value)),e}const n={};return Object.keys(t).forEach((e=>{const r=t[e];void 0!==r.get?Object.defineProperty(n,r.name,{get(){return G(r.get.id,r.get.commandSet,r.get.command,r.get.buffer)},set:function(e){return q(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),true}}):void 0!==r.set?Object.defineProperty(n,r.name,{get(){return r.value},set:function(e){return q(r.set.id,r.set.commandSet,r.set.command,r.set.buffer,r.set.length,r.set.valtype,e),true}}):n[r.name]=r.value})),n}function oe(e){if(void 0!=e.arguments&&!Array.isArray(e.arguments))throw new Error(`"arguments" should be an array, but was ${e.arguments}`);const t=e.objectId,n=e.details;let r={};if(t.startsWith("dotnet:cfo_res:")){if(!(t in W))throw new Error(`Unknown object id ${t}`);r=W[t]}else r=re(t,n);const o=void 0!=e.arguments?e.arguments.map((e=>JSON.stringify(e.value))):[],s=`const fn = ${e.functionDeclaration}; return fn.apply(proxy, [${o}]);`,i=undefined,a=new Function("proxy",s)(r);if(void 0===a)return{type:"undefined"};if(Object(a)!==a)return"object"==typeof a&&null==a?{type:typeof a,subtype:`${a}`,value:null}:{type:typeof a,description:`${a}`,value:`${a}`};if(e.returnByValue&&void 0==a.subtype)return{type:"object",value:a};if(Object.getPrototypeOf(a)==Array.prototype){const e=ae(a);return{type:"object",subtype:"array",className:"Array",description:`Array(${a.length})`,objectId:e}}if(void 0!==a.value||void 0!==a.subtype)return a;if(a==r)return{type:"object",className:"Object",description:"Object",objectId:t};const c=undefined;return{type:"object",className:"Object",description:"Object",objectId:ae(a)}}function se(e,t){if(!(e in W))throw new Error(`Could not find any object with id ${e}`);const n=W[e],r=Object.getOwnPropertyDescriptors(n);t.accessorPropertiesOnly&&Object.keys(r).forEach((e=>{void 0===r[e].get&&Reflect.deleteProperty(r,e)}));const o=[];return Object.keys(r).forEach((e=>{let t;const n=r[e];t="object"==typeof n.value?Object.assign({name:e},n):void 0!==n.value?{name:e,value:Object.assign({type:typeof n.value,description:""+n.value},n)}:void 0!==n.get?{name:e,get:{className:"Function",description:`get ${e} () {}`,type:"function"}}:{name:e,value:{type:"symbol",value:"",description:""}},o.push(t)})),{__value_as_json_string__:JSON.stringify(o)}}function ie(e,t={}){return se(`dotnet:cfo_res:${e}`,t)}function ae(e){const t="dotnet:cfo_res:"+F++;return W[t]=e,t}function ce(e){e in W&&delete W[e]}function ue(e,t){const n=o.UTF8ToString(t);if(s.logging&&"function"===typeof s.logging.debugger)return s.logging.debugger(e,n),void 0}let le=0;function fe(e){const t=1===M.mono_wasm_load_icu_data(e);return t&&le++,t}function _e(e){return M.mono_wasm_get_icudt_name(e)}function de(){const e=b.config;let t=false;if(e.globalizationMode||(e.globalizationMode="auto"),"invariant"===e.globalizationMode&&(t=true),!t)if(le>0)b.diagnosticTracing&&console.debug("MONO_WASM: ICU data archive(s) loaded, disabling invariant mode");else{if("icu"===e.globalizationMode){const e="invariant globalization mode is inactive and no ICU data archives were loaded";throw o.printErr(`MONO_WASM: ERROR: ${e}`),new Error(e)}b.diagnosticTracing&&console.debug("MONO_WASM: ICU data archive(s) not loaded, using invariant globalization mode"),t=true}t&&M.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),M.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY","1")}function me(e){null==e&&(e={}),"writeAt"in e||(e.writeAt="System.Runtime.InteropServices.JavaScript.JavaScriptExports::StopProfile"),"sendTo"in e||(e.sendTo="Interop/Runtime::DumpAotProfileData");const t="aot:write-at-method="+e.writeAt+",send-to-method="+e.sendTo;o.ccall("mono_wasm_load_profiler_aot",null,["string"],[t])}function ge(e){null==e&&(e={}),"writeAt"in e||(e.writeAt="WebAssembly.Runtime::StopProfile"),"sendTo"in e||(e.sendTo="WebAssembly.Runtime::DumpCoverageProfileData");const t="coverage:write-at-method="+e.writeAt+",send-to-method="+e.sendTo;o.ccall("mono_wasm_load_profiler_coverage",null,["string"],[t])}const we=new Map,he=new Map;let pe=0;function be(e){if(we.has(e))return we.get(e);const t=M.mono_wasm_assembly_load(e);return we.set(e,t),t}function ye(e,t,n){let r=he.get(e);r||he.set(e,r=new Map);let o=r.get(t);return o||(o=new Map,r.set(t,o)),o.get(n)}function ve(e,t,n,r){const o=he.get(e);if(!o)throw new Error("internal error");const s=o.get(t);if(!s)throw new Error("internal error");s.set(n,r)}function Ee(e,t,n){pe||(pe=M.mono_wasm_get_corlib());let r=ye(pe,e,t);if(void 0!==r)return r;if(r=M.mono_wasm_assembly_find_class(pe,e,t),n&&!r)throw new Error(`Failed to find corlib class ${e}.${t}`);return ve(pe,e,t,r),r}
-//! Licensed to the .NET Foundation under one or more agreements.
-const Ae=new Map,Se=[];function Oe(e){try{if(0==Ae.size)return e;const t=e;for(let n=0;n{const n=t.find((e=>"object"==typeof e&&void 0!==e.replaceSection));if(void 0===n)return e;const r=n.funcNum,o=n.replaceSection,s=Ae.get(Number(r));return void 0===s?e:e.replace(o,`${s} (${o})`)}));if(r!==t)return r}return t}catch(t){return console.debug(`MONO_WASM: failed to symbolicate: ${t}`),e}}function xe(e){let t=e;return t instanceof Error||(t=new Error(t)),Oe(t.stack)}function je(e,t,n,r,i){const a=o.UTF8ToString(n),c=!!r,u=o.UTF8ToString(e),l=i,f=o.UTF8ToString(t),_=`[MONO] ${a}`;if(s.logging&&"function"===typeof s.logging.trace)return s.logging.trace(u,f,_,c,l),void 0;switch(f){case"critical":case"error":console.error(xe(_));break;case"warning":console.warn(_);break;case"message":console.log(_);break;case"info":console.info(_);break;case"debug":console.debug(_);break;default:console.log(_);break}}let $e;function Ne(e,t,n){const r={log:t.log,error:t.error},o=t;function s(t,n,o){return function(...s){try{let r=s[0];if(void 0===r)r="undefined";else if(null===r)r="null";else if("function"===typeof r)r=r.toString();else if("string"!==typeof r)try{r=JSON.stringify(r)}catch(e){r=r.toString()}"string"===typeof r&&"main"!==e&&(r=`[${e}] ${r}`),n(o?JSON.stringify({method:t,payload:r,arguments:s}):[t+r,...s.slice(1)])}catch(e){r.error(`proxyConsole failed: ${e}`)}}}const i=["debug","trace","warn","info","error"];for(const e of i)"function"!==typeof o[e]&&(o[e]=s(`console.${e}: `,t.log,false));const a=`${n}/console`.replace("https://","wss://").replace("http://","ws://");$e=new WebSocket(a),$e.addEventListener("open",(()=>{r.log(`browser: [${e}] Console websocket connected.`)})),$e.addEventListener("error",(t=>{r.error(`[${e}] websocket error: ${t}`,t)})),$e.addEventListener("close",(t=>{r.error(`[${e}] websocket closed: ${t}`,t)}));const c=e=>{$e.readyState===WebSocket.OPEN?$e.send(e):r.log(e)};for(const e of["log",...i])o[e]=s(`console.${e}`,c,true)}function ke(e){if(!b.mono_wasm_symbols_are_ready){b.mono_wasm_symbols_are_ready=true;try{const t=undefined;o.FS_readFile(e,{flags:"r",encoding:"utf8"}).split(/[\r\n]/).forEach((e=>{const t=e.split(/:/);t.length<2||(t[1]=t.splice(1).join(":"),Ae.set(Number(t[0]),t[1]))}))}catch(t){return 44==t.errno||console.log(`MONO_WASM: Error loading symbol file ${e}: ${JSON.stringify(t)}`),void 0}}}async function Te(e,t){try{const n=await Re(e,t);return De(n),n}catch(e){return e instanceof b.ExitStatus?e.status:(De(1,e),1)}}async function Re(e,t){Ic(e,t),-1==b.waitForDebugger&&(console.log("MONO_WASM: waiting for debugger..."),await ee());const n=Me(e);return b.javaScriptExports.call_entry_point(n,t)}function Me(e){if(!b.mono_wasm_bindings_is_ready)throw new Error("Assert failed: The runtime must be initialized.");const t=be(e);if(!t)throw new Error("Could not find assembly: "+e);let n=0;1==b.waitForDebugger&&(n=1);const r=M.mono_wasm_assembly_get_entry_point(t,n);if(!r)throw new Error("Could not find entry point for assembly: "+e);return r}function Ie(e){bc(e,false),De(1,e)}function De(e,t){if(b.config.asyncFlushOnExit&&0===e)throw(async()=>{try{await Ue()}finally{Ce(e,t)}})(),b.ExitStatus?new b.ExitStatus(e):t||new Error("Stop with exit code "+e);Ce(e,t)}async function Ue(){try{const e=await import("process"),t=e=>new Promise(((t,n)=>{e.on("error",(e=>n(e))),e.write("",(function(){t()}))})),n=t(e.stderr),r=t(e.stdout);await Promise.all([r,n])}catch(e){console.error(`flushing std* streams failed: ${e}`)}}function Ce(e,t){if(b.ExitStatus&&(!t||t instanceof b.ExitStatus?t=new b.ExitStatus(e):t instanceof Error?o.printErr(s.mono_wasm_stringify_as_error_with_stack(t)):"string"==typeof t?o.printErr(t):o.printErr(JSON.stringify(t))),We(e,t),Pe(e),0!==e||!u){if(!b.quit)throw t;b.quit(e,t)}}function Pe(e){if(u&&b.config.appendElementOnExit){const t=document.createElement("label");t.id="tests_done",e&&(t.style.background="red"),t.innerHTML=e.toString(),document.body.appendChild(t)}}function We(e,t){if(b.config.logExitCode)if(0!=e&&t&&(t instanceof Error?console.error(xe(t)):"string"==typeof t?console.error(t):console.error(JSON.stringify(t))),$e){const t=()=>{0==$e.bufferedAmount?console.log("WASM EXIT "+e):setTimeout(t,100)};t()}else console.log("WASM EXIT "+e)}Se.push(/at (?[^:()]+:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)((?![^)a-fA-F\d])|$)/),Se.push(/(?:WASM \[[\da-zA-Z]+\], (?function #(?[\d]+) \(''\)))/),Se.push(/(?[a-z]+:\/\/[^ )]*:wasm-function\[(?\d+)\]:0x[a-fA-F\d]+)/),Se.push(/(?<[^ >]+>[.:]wasm-function\[(?[0-9]+)\])/);const Fe="function"===typeof globalThis.WeakRef;function Be(e){return Fe?new WeakRef(e):{deref:()=>e}}const Ve="function"===typeof globalThis.FinalizationRegistry;let He;const ze=[],Le=[];let Je=1;const qe=new Map;Ve&&(He=new globalThis.FinalizationRegistry(rt));const Ge=Symbol.for("wasm js_owned_gc_handle"),Ye=Symbol.for("wasm cs_owned_js_handle");function Ze(e){return 0!==e&&e!==x?ze[e]:null}function Xe(e){return 0!==e&&e!==x?Ze(e):null}function Qe(e){if(e[Ye])return e[Ye];const t=Le.length?Le.pop():Je++;return ze[t]=e,Object.isExtensible(e)&&(e[Ye]=t),t}function Ke(e){const t=ze[e];if("undefined"!==typeof t&&null!==t){if(globalThis===t)return;"undefined"!==typeof t[Ye]&&(t[Ye]=void 0),ze[e]=void 0,Le.push(e)}}function et(e,t){e[Ge]=t,Ve&&He.register(e,t,e);const n=Be(e);qe.set(t,n)}function tt(e,t){e&&(t=e[Ge],e[Ge]=0,Ve&&He.unregister(e)),0!==t&&qe.delete(t)&&b.javaScriptExports.release_js_owned_object_by_gc_handle(t)}function nt(e){const t=e[Ge];if(!(0!=t))throw new Error("Assert failed: ObjectDisposedException");return t}function rt(e){tt(null,e)}function ot(e){if(!e)return null;const t=qe.get(e);return t?t.deref():null}const st=Symbol.for("wasm promise_control");function it(e,t){let n=null;const r=new Promise((function(r,o){n={isDone:false,promise:null,resolve:t=>{n.isDone||(n.isDone=true,r(t),e&&e())},reject:e=>{n.isDone||(n.isDone=true,o(e),t&&t())}}}));n.promise=r;const o=r;return o[st]=n,{promise:o,promise_control:n}}function at(e){return e[st]}function ct(e){return void 0!==e[st]}function ut(e){if(!ct(e))throw new Error("Assert failed: Promise is not controllable")}const lt=("object"===typeof Promise||"function"===typeof Promise)&&"function"===typeof Promise.resolve;function ft(e){return Promise.resolve(e)===e||("object"===typeof e||"function"===typeof e)&&"function"===typeof e.then}function _t(e){const{promise:t,promise_control:n}=it(),r=undefined;return e().then((e=>n.resolve(e))).catch((e=>n.reject(e))),t}function dt(e){const t=ot(e);if(!t)return;const n=t.promise;if(!!!n)throw new Error(`Assert failed: Expected Promise for GCHandle ${e}`);ut(n);const r=undefined;at(n).reject("OperationCanceledException")}const mt=[],gt=32768;let wt,ht,pt=null;function bt(){wt||(wt=o._malloc(gt),ht=wt)}const yt="undefined"!==typeof BigInt&&"undefined"!==typeof BigInt64Array;function vt(){bt(),mt.push(ht)}function Et(){if(!mt.length)throw new Error("No temp frames have been created at this point");ht=mt.pop()}function At(e,t,n){if(!Number.isSafeInteger(e))throw new Error(`Assert failed: Value is not an integer: ${e} (${typeof e})`);if(!(e>=t&&e<=n))throw new Error(`Assert failed: Overflow: value ${e} is out of ${t} ${n} range`)}function St(e,t){o.HEAP8.fill(0,e,t+e)}function Ot(e,t){const n=!!t;"number"===typeof t&&At(t,0,1),o.HEAP32[e>>>2]=n?1:0}function xt(e,t){At(t,0,255),o.HEAPU8[e]=t}function jt(e,t){At(t,0,65535),o.HEAPU16[e>>>1]=t}function $t(e,t){o.HEAPU32[e>>>2]=t}function Nt(e,t){At(t,0,4294967295),o.HEAPU32[e>>>2]=t}function kt(e,t){At(t,-128,127),o.HEAP8[e]=t}function Tt(e,t){At(t,-32768,32767),o.HEAP16[e>>>1]=t}function Rt(e,t){o.HEAP32[e>>>2]=t}function Mt(e,t){At(t,-2147483648,2147483647),o.HEAP32[e>>>2]=t}function It(e){if(0!==e)switch(e){case 1:throw new Error("value was not an integer");case 2:throw new Error("value out of range");default:throw new Error("unknown internal error")}}function Dt(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);const n=undefined;It(M.mono_wasm_f64_to_i52(e,t))}function Ut(e,t){if(!Number.isSafeInteger(t))throw new Error(`Assert failed: Value is not a safe integer: ${t} (${typeof t})`);if(!(t>=0))throw new Error("Assert failed: Can't convert negative Number into UInt64");const n=undefined;It(M.mono_wasm_f64_to_u52(e,t))}function Ct(e,t){if(!yt)throw new Error("Assert failed: BigInt is not supported.");if(!("bigint"===typeof t))throw new Error(`Assert failed: Value is not an bigint: ${t} (${typeof t})`);if(!(t>=Kt&&t<=Qt))throw new Error(`Assert failed: Overflow: value ${t} is out of ${Kt} ${Qt} range`);pt[e>>>3]=t}function Pt(e,t){if(!("number"===typeof t))throw new Error(`Assert failed: Value is not a Number: ${t} (${typeof t})`);o.HEAPF32[e>>>2]=t}function Wt(e,t){if(!("number"===typeof t))throw new Error(`Assert failed: Value is not a Number: ${t} (${typeof t})`);o.HEAPF64[e>>>3]=t}function Ft(e){return!!o.HEAP32[e>>>2]}function Bt(e){return o.HEAPU8[e]}function Vt(e){return o.HEAPU16[e>>>1]}function Ht(e){return o.HEAPU32[e>>>2]}function zt(e){return o.HEAP8[e]}function Lt(e){return o.HEAP16[e>>>1]}function Jt(e){return o.HEAP32[e>>>2]}function qt(e){const t=M.mono_wasm_i52_to_f64(e,b._i52_error_scratch_buffer),n=undefined;return It(Jt(b._i52_error_scratch_buffer)),t}function Gt(e){const t=M.mono_wasm_u52_to_f64(e,b._i52_error_scratch_buffer),n=undefined;return It(Jt(b._i52_error_scratch_buffer)),t}function Yt(e){if(!yt)throw new Error("Assert failed: BigInt is not supported.");return pt[e>>>3]}function Zt(e){return o.HEAPF32[e>>>2]}function Xt(e){return o.HEAPF64[e>>>3]}let Qt,Kt;function en(e){yt&&(Qt=BigInt("9223372036854775807"),Kt=BigInt("-9223372036854775808"),pt=new BigInt64Array(e))}function tn(e){const t=o._malloc(e.length),n=undefined;return new Uint8Array(o.HEAPU8.buffer,t,e.length).set(e),t}const nn=8192;let rn=null,on=null,sn=0;const an=[],cn=[];function un(e,t){if(e<=0)throw new Error("capacity >= 1");const n=4*(e|=0),r=o._malloc(n);if(r%4!==0)throw new Error("Malloc returned an unaligned offset");return St(r,n),new WasmRootBufferImpl(r,e,true,t)}function ln(e){let t;if(!e)throw new Error("address must be a location in the native heap");return cn.length>0?(t=cn.pop(),t._set_address(e)):t=new wn(e),t}function fn(e){let t;if(an.length>0)t=an.pop();else{const e=mn(),n=undefined;t=new gn(rn,e)}if(void 0!==e){if("number"!==typeof e)throw new Error("value must be an address in the managed heap");t.set(e)}else t.set(0);return t}function _n(...e){for(let t=0;t>>2,this.__count=t,this.length=t,this.__handle=M.mono_wasm_register_root(e,o,r||"noname"),this.__ownsAllocation=n}_throw_index_out_of_range(){throw new Error("index out of range")}_check_in_range(e){(e>=this.__count||e<0)&&this._throw_index_out_of_range()}get_address(e){return this._check_in_range(e),this.__offset+4*e}get_address_32(e){return this._check_in_range(e),this.__offset32+e}get(e){this._check_in_range(e);const t=this.get_address_32(e);return o.HEAPU32[t]}set(e,t){const n=this.get_address(e);return M.mono_wasm_write_managed_pointer_unsafe(n,t),t}copy_value_from_address(e,t){const n=this.get_address(e);M.mono_wasm_copy_managed_pointer(n,t)}_unsafe_get(e){return o.HEAPU32[this.__offset32+e]}_unsafe_set(e,t){const n=this.__offset+e;M.mono_wasm_write_managed_pointer_unsafe(n,t)}clear(){this.__offset&&St(this.__offset,4*this.__count)}release(){this.__offset&&this.__ownsAllocation&&(M.mono_wasm_deregister_root(this.__offset),St(this.__offset,4*this.__count),o._free(this.__offset)),this.__handle=this.__offset=this.__count=this.__offset32=0}toString(){return`[root buffer @${this.get_address(0)}, size ${this.__count} ]`}}class gn{constructor(e,t){this.__buffer=e,this.__index=t}get_address(){return this.__buffer.get_address(this.__index)}get_address_32(){return this.__buffer.get_address_32(this.__index)}get address(){return this.__buffer.get_address(this.__index)}get(){const e=undefined;return this.__buffer._unsafe_get(this.__index)}set(e){const t=this.__buffer.get_address(this.__index);return M.mono_wasm_write_managed_pointer_unsafe(t,e),e}copy_from(e){const t=e.address,n=this.address;M.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.address,n=e.address;M.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.address;M.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.address;M.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){this.set(0)}release(){if(!this.__buffer)throw new Error("No buffer");const e=128;an.length>e?(dn(this.__index),this.__buffer=null,this.__index=0):(this.set(0),an.push(this))}toString(){return`[root @${this.address}]`}}class wn{constructor(e){this.__external_address=0,this.__external_address_32=0,this._set_address(e)}_set_address(e){this.__external_address=e,this.__external_address_32=e>>>2}get address(){return this.__external_address}get_address(){return this.__external_address}get_address_32(){return this.__external_address_32}get(){const e=undefined;return o.HEAPU32[this.__external_address_32]}set(e){return M.mono_wasm_write_managed_pointer_unsafe(this.__external_address,e),e}copy_from(e){const t=e.address,n=this.__external_address;M.mono_wasm_copy_managed_pointer(n,t)}copy_to(e){const t=this.__external_address,n=e.address;M.mono_wasm_copy_managed_pointer(n,t)}copy_from_address(e){const t=this.__external_address;M.mono_wasm_copy_managed_pointer(t,e)}copy_to_address(e){const t=this.__external_address;M.mono_wasm_copy_managed_pointer(e,t)}get value(){return this.get()}set value(e){this.set(e)}valueOf(){throw new Error("Implicit conversion of roots to pointers is no longer supported. Use .value or .address as appropriate")}clear(){this.set(0)}release(){const e=128;cn.length